针对数组中特定元素的MongoDb过滤器
问题描述:
对于我们的软件,我需要一个mongodb过滤器来过滤数据库中的特定文档。 下面是一个例子,我的数据看起来像:针对数组中特定元素的MongoDb过滤器
[
{
"_id": "v4fv654vae65",
"Title": "Title 123",
"Array": [
"Value1",
"Value2"
]
},
{
"_id": "f46vrwe6vg",
"Title": "Title 456",
"Array": [
"Value3",
"Value1",
"Value2"
]
}
]
现在我需要一个过滤器,过滤阵列。过滤器只能检查值“Value1”和“Value2”。我不想要文档的值:“Value3”。
我现在的过滤器看起来像这样:
.find({ "Array": {$in: ["Value1", "Value2"]}})
这个滤镜近,也将返回数组中的“值3”字段的doucment。
答
在不使用$,尝试这种方式
db.getCollection('collectionName').find({"Array":[
"Value1",
"Value2"
]})
输出
[
{
"_id": "v4fv654vae65",
"Title": "Title 123",
"Array": [
"Value1",
"Value2"
]
}
]
答
.find({$和:[ { “阵列”:{$ nin的:[ “值3”]}},{ “阵列”:{$中:[ “值1”, “值2” ]}} ]})
问候
您可以使用all而不是in。 http://*.com/questions/5366687/how-to-check-if-an-array-field-contains-a-unique-value-or-another-array-in-mongo –
我想你应该看看这里:http://*.com/questions/37599298/in-mongo-how-would-i-match-all-items-of-collection-against-a-larger-array –