假设我有一个这样的文件:
{
_id: "cow",
comments: [
{user: "karl", comment: "I like cows.", at: /*a date*/},
{user: "harry", comment: "Cows are the best.", at: /*a date*/}
]
}
现在我想收集"karl"
在我的数据库中留下的所有评论。或者只是特定日期的那些。 "comments"
已编入索引,我该如何查询?
答案 0 :(得分:11)
类似的东西:
db.foo.find({"comments.user":"karl", "comments.at":{$gt:{dateObject}});
没有经过测试,但你明白了;你可以深入研究这些项目。
我建议浏览此网站,因为它会引导您完成大量的互动教程:Interactive Tutorial
答案 1 :(得分:6)
您应该使用$ elemMatch来匹配同一个文档中的多个条件。
类似的东西:
db.foo.find({comments: {"$elemMatch": {user: "karl", at: {$gt:{dateObject}}}})
有关详细信息,请参阅here。