Dar*_*nov 4 mongodb mongodb-query
我有一份这样的文件清单。
[
{
"name" : "test",
"data" : [
{ "code" : "name", "value" : "Diego" },
{ "code" : "nick", "value" : "Darko" },
{ "code" : "special", "value" : true }
]
},
{
"name" : "another",
"data" : [
{ "code" : "name", "value" : "Antonio" },
{ "code" : "nick", "value" : "Tony" }
]
}
]
Run Code Online (Sandbox Code Playgroud)
现在我需要找到所有符合以下条件的文件:
a)不包含代码为“special”的“data”项
或者
b)包含代码为“special”且值为 false 的“data”项
就像我需要$elemMatch的对立面,或者我错过了什么?
I'm assuming that you're inserting each document in your list of documents as a separate member of a collection test.
For a,
db.test.find({ "data.code" : { "$ne" : "special" } })
Run Code Online (Sandbox Code Playgroud)
For b.,
db.test.find({ "data" : { "$elemMatch" : { "code" : "special", "value" : false } } })
Run Code Online (Sandbox Code Playgroud)
Combining the two with $or,
db.test.find({ "$or" : [
{ "data.code" : { "$ne" : "special" } },
{ "data" : { "$elemMatch" : { "code" : "special", "value" : false } } }
] })
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2860 次 |
| 最近记录: |