[英]MongoDB find Query for array data with object value
我陷入了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
}
}
]
}
首先通过_id检索文档,然后检查收到的值。 或者您可以通过传递_id和接收值false来查找文档,如果该文档的接收值为false,则它将返回null,否则将返回文档。
查询多个参数可以为您提供帮助。 department.find({"_id" : "5a6589d94abd7408c36350da" , "received" : false })
尝试这个
db.getCollection("demo_table").aggregate(
[
{
"$unwind" : {
"path" : "$department"
}
},
{
"$match" : {
"department.5a6589d94abd7408c36350da" : {
"$exists" : true
},
"department.5a6589d94abd7408c36350da.received" : false
}
},
{
"$project" : {
"department" : 1.0
}
}
]
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.