Mongodb find()查询嵌套文档

时间:2015-04-03 20:15:05

标签: mongodb

我是MongoDB的新手。我想根据嵌套文档的条件检索文档。 示例:

db.user.insert([
{name:"abc",uid:"abc.b",pass:"abc3",follows:500,posts:78},
{name:"xyz",uid:"xyz.r",pass:"xyz4",follows:600,posts:78},
{name:"pqr",uid:"pqr.s",pass:"pqr5",follows:600,posts:78,
      comments:[{
                  uid:"abc.b",msg:"great"},{uid:"xyz.r",msg:"awesome"}
               ]}
])

这里,如何根据与RDBMS等效的条件检索文档:

 select * where comments.user="abc";

我可以通过“abc”来评论用户。

先谢谢。

2 个答案:

答案 0 :(得分:2)

使用 dot notation 访问查询对象中的嵌入数组元素。例如,以下内容将在user数组uid字段的comments字段中查询值为"abc.d"的{​​{1}}字段中的文档:

db.user.find({"comments.uid": "abc.b"});

答案 1 :(得分:-1)

db.user.find({"comments.user"="abc"})