假设您有一个名为comments的mongoDB集合,其中包含以下文档:
{
"_id" : ObjectId("55fc4e8f2b21ff102bb20d94"),
"userName" : "user0053",
"comment" : [
{
"timestamp" : ISODate("2015-09-18T17:49:03.678Z"),
"title" : "Some title XYZ",
"status" : "Approved",
"content" : "blah blah blah"
},
{
"timestamp" : ISODate("2015-09-18T17:49:03.678Z"),
"title" : "Some nice looking title",
"status" : "Approved",
"content" : "blah blah blah"
},
{
"timestamp" : ISODate("2015-09-18T17:49:03.678Z"),
"title" : "A title",
"status" : "Spam",
"content" : "blah blah blah"
}
]
}
comment
元素是一个文档数组,每个文档包含多个元素,其中包含3个(或任何)可能值的状态,例如 Approved , Spam , PendingReview 。
我想查询集合中的所有文档,其注释元素包含一个数组,其中所有文档的状态为" 已批准"。
在上面的示例中,文档不符合条件,因为至少有一个注释元素的状态与Approved不同。
我认为使用$ all和$ elemMatch选项无法做到这一点,但需要使用Aggregate管道完成。我只是无法弄清楚如何。