我陷入了monogodb查询构建问题,并且无法将数据查找到数组对象值中。
在此数组中,如果我得到具有特定值的特定对象,则获得
例如:
-->in department --> "5a6589d94abd7408c36350da" --> "received"
如果“ received”值是false,则它将返回整个文档。
我的数据对象在这里。
{"_id": "5cff4d893d900862be52cac5",
"priority": 1,
"description": "",
"duration": 8,
"user": null,
"department": [
{
"5a6589834abd7408c36350d9": {
"skiped": false,
"completed_date": "2019-06-11T06:36:09.431Z",
"completed": true,
"received_date": "2019-06-11T06:36:09.431Z",
"received": true
}
},
{
"5a6589d94abd7408c36350da": {
"skiped": false,
"completed_date": "2019-06-26T09:36:52.975Z",
"completed": true,
"recieved_date": "2019-06-11T06:43:21.590Z",
"received": false,
"totalDaysofCompletion": 15,
"user_id": "5b3c629a250d3a65eb7367a5"
}
},
{
"5a658b054abd7408c36350db": {
"skiped": false,
"completed_date": "2019-06-11T06:36:09.431Z",
"completed": false,
"received_date": "2019-06-26T09:36:52.980Z",
"received": true
}
}
]
}
答案 0 :(得分:0)
首先通过_id检索文档,然后检查接收值。 或者您可以通过传递_id和接收值false来查找文档,如果该文档的接收值是false,则它将返回null,否则将返回文档。
查询多个参数可以为您提供帮助。
department.find({"_id" : "5a6589d94abd7408c36350da" , "received" : false })
答案 1 :(得分:0)
尝试一下
db.getCollection("demo_table").aggregate(
[
{
"$unwind" : {
"path" : "$department"
}
},
{
"$match" : {
"department.5a6589d94abd7408c36350da" : {
"$exists" : true
},
"department.5a6589d94abd7408c36350da.received" : false
}
},
{
"$project" : {
"department" : 1.0
}
}
]
);