如何在Mongodb中查询对象数组?

时间:2020-07-17 12:20:18

标签: mongodb mongodb-query

我需要以仅获取 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")
                        }]
                }

1 个答案:

答案 0 :(得分:1)

您可以使用$关键字。 这将使您可以对内部数组中的所有元素执行查询。

例如:db.collection.find({'users.assigned.$.status': 'active'})

相关问题