7

假设我确实有这样的文件:

{
    _id: "cow",
    comments: [
        {user: "karl", comment: "I like cows.", at: /*a date*/},
        {user: "harry", comment: "Cows are the best.", at: /*a date*/}
    ]
}

现在我想收集"karl"我数据库中留下的所有评论。或者只是某个日期的那些。已编入索引,我该"comments"如何查询?

4

2 回答 2

11

就像是:

db.foo.find({"comments.user":"karl", "comments.at":{$gt:{dateObject}});

没有测试,但你明白了;您可以深入了解此类项目。

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

于 2011-12-17T15:32:23.733 回答
6

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

就像是:

db.foo.find({comments: {"$elemMatch": {user: "karl", at: {$gt:{dateObject}}}})

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

于 2011-12-17T15:42:41.167 回答