MongoDB查询列表中的对象属性

Lan*_*nbo 7 json querying mongodb

假设我有一个这样的文档:

{
    _id: "cow",
    comments: [
        {user: "karl", comment: "I like cows.", at: /*a date*/},
        {user: "harry", comment: "Cows are the best.", at: /*a date*/}
    ]
}
Run Code Online (Sandbox Code Playgroud)

现在我想收集"karl"我的数据库中留下的所有注释.或者只是特定日期的那些."comments"已编制索引,我该如何查询?

Pet*_*gad 11

就像是:

db.foo.find({"comments.user":"karl", "comments.at":{$gt:{dateObject}});
Run Code Online (Sandbox Code Playgroud)

没有测试,但你明白了; 你可以深入研究这些项目.

我建议您浏览本网站,因为它会引导您完成大量的交互式教程:交互式教程


Fel*_*Yan 6

您应该使用$ elemMatch来匹配同一文档中的多个条件.

就像是:

db.foo.find({comments: {"$elemMatch": {user: "karl", at: {$gt:{dateObject}}}})
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参见此处