MongoDb过滤器用于数组中的特定元素

时间:2016-06-07 08:28:25

标签: c# arrays mongodb filter contains

对于我们的软件,我需要一个mongodb过滤器来过滤数据库中的特定文档。 这是一个例子,我的数据如何:

[
  {
    "_id": "v4fv654vae65",
    "Title": "Title 123",
    "Array": [
      "Value1",
      "Value2"
    ]
  },
  {
    "_id": "f46vrwe6vg",
    "Title": "Title 456",
    "Array": [
     "Value3",
     "Value1",
     "Value2"
    ]
  }
]

现在我需要一个过滤数组的过滤器。过滤器必须只检查值#34; Value1" AND" Value2"。我不希望文档具有值:" Value3"。

我当前的过滤器如下所示:

.find({ "Array": {$in: ["Value1", "Value2"]}})

这个过滤器几乎可以工作,但也会返回带有" Value3"数组中的字段。

2 个答案:

答案 0 :(得分:0)

  

.find({$和:[       { “阵列”:{$ nin的:[ “值3”]}},       {“数组”:{$ in:[“Value1”,“Value2”]}}       ]})

祝你好运

答案 1 :(得分:0)

不要使用$ in,试试这种方式

 db.getCollection('collectionName').find({"Array":[ 
            "Value1", 
            "Value2"
        ]})

输出

[
{
    "_id": "v4fv654vae65",
    "Title": "Title 123",
    "Array": [
      "Value1",
      "Value2"
    ]
  }
]