我需要以仅获取 status:active 列表的方式来构成查询。它应该只列出活动状态。需要将其过滤掉。
"users" : {
"assigned" : [
{
"userId" : ObjectId("5d9fd84b3d598088d2ea5e0b"),
"firstName" : "ramasamy",
"userImage" : "69_20160719103303_user.png",
"status" : "inactive",
"assignedDate" : ISODate("2017-05-25T05:18:37Z")
},
{
"userId" : ObjectId("5d9fd8233d598088d2ea5dd1"),
"firstName" : "karthik",
"userImage" : "karthik_1589782232510.jpeg",
"status" : "active",
"assignedDate" : null
}],
"incharge" : [{
"userId" : ObjectId("5d9fd81f3d598088d2ea5dcc"),
"firstName" : "sathish",
"status" : "inactive",
"assignedDate" : ISODate("2017-04-12T16:43:24Z")
},
{ "userId" : ObjectId("5d9fd8203d598088d2ea5dcd"),
"firstName" : "santhana vadivelan",
"status" : "active",
"assignedDate" : ISODate("2017-05-09T18:20:25Z")
}]
}
我尝试使用查找查询,但是注意到了。
我需要结果像。
"users" : {
"assigned" : [
{
"userId" : ObjectId("5d9fd8233d598088d2ea5dd1"),
"firstName" : "karthik",
"userImage" : "karthik_1589782232510.jpeg",
"status" : "active",
"assignedDate" : null
}]
"incharge" : [{ "userId" : ObjectId("5d9fd8203d598088d2ea5dcd"),
"firstName" : "santhana vadivelan",
"status" : "active",
"assignedDate" : ISODate("2017-05-09T18:20:25Z")
}]
}
答案 0 :(得分:1)
您可以使用$关键字。 这将使您可以对内部数组中的所有元素执行查询。
例如:db.collection.find({'users.assigned.$.status': 'active'})