【问题标题】:MongoDb filter for specific elements in an array用于数组中特定元素的 MongoDb 过滤器
【发布时间】:2016-10-07 01:16:51
【问题描述】:

对于我们的软件,我需要一个 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"]}})

这个过滤器几乎可以工作,但也返回数组中包含“Value3”字段的文档。

【问题讨论】:

标签: c# arrays mongodb filter contains


【解决方案1】:

不要使用 $in ,试试这个方法

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

输出

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

【讨论】:

    【解决方案2】:

    .find({$and:[ {"数组":{$nin:["Value3"]}}, {"数组":{$in: ["Value1", "Value2"]}} ] })

    最好的问候

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-20
      • 2022-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-09
      相关资源
      最近更新 更多