内嵌集合怎么查询

浮世修 2014-06-17 05:24:26
假设有个文章的集合,里面有两文章,结构如下所示,我想查询,标题是“abc”的文章里,一共有几条评论"comment"
如第一篇查出来是2个 第二篇 查出来是1个 如果把.count()改成 .find() 能查到具体内容

db.articles.count( {...} )
这里的查询条件应该和find一样用法吧,但是{...} 里面怎么写呢
网上搜了有内嵌文档插查询的,但是内嵌集合查询的没找到

db.articles

{
"title" : "abc",
"content" : "abcdefg",
"comment" : {
{
"id" : "sam",
"content" : "good"
}
{
"id" : "bill",
"content" : "nice"
}
}
}


{
"title" : "bcd",
"content" : "aabbcc",
"comment" : {
{
"id" : "tom",
"content" : "fantastic"
}
}
}

我是个刚入门的菜鸟,望各位指教。
...全文
95 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
浮世修 2014-06-25
  • 打赏
  • 举报
回复
引用 3 楼 yinlidong99 的回复:
如果你把文档格式改成我上面回复的样子,是可以得到comment的长度的。 语句是:db.articles.find({"title","abc"})[0].comment.length; 希望给分。
嗯,是的 我文档打错了 应该是个数组,你这个里面应该是个冒号{"title":"abc"} 我这个有个查询条件所以我觉得直接用count应该是不行的 总之解决了我的疑惑,感谢
yinlidong99 2014-06-23
  • 打赏
  • 举报
回复
如果你把文档格式改成我上面回复的样子,是可以得到comment的长度的。 语句是:db.articles.find({"title","abc"})[0].comment.length; 希望给分。
yinlidong99 2014-06-23
  • 打赏
  • 举报
回复
你的文档格式有问题吧 { "title" : "abc", "content" : "abcdefg", "comment" : [ { "id" : "sam", "content" : "good" }, { "id" : "bill", "content" : "nice" } ] } 这才是能插入到mongodb 的正常的文档格式。
yinlidong99 2014-06-23
  • 打赏
  • 举报
回复
var abc = db.articles.find({"title" : "abc"}; abc.comment.count(); 这样行不行 我没有测试。

1,747

社区成员

发帖
与我相关
我的任务
社区描述
MongoDB相关内容讨论区
社区管理员
  • MongoDB社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧