【问题标题】:MongoDb: search only if it contains all ids within the arrayMongoDb:仅当它包含数组中的所有 id 时才搜索
【发布时间】:2021-11-16 20:25:33
【问题描述】:

我正在寻找一个 id 数组,在另一个数组中,问题是如果它包含至少一个“id”,它会返回结果。验证应该是它必须具有我传递的所有“id”。

{ subcategories: { $in: [ ObjectId('61729d550e8fe20011cc57d2', ObjectId('61693f589a34340012b1d5d8'), ObjectId('61693f2c9a34340012b1d5b7') )] } } 

示例:

  • subcategories: ["61729d550e8fe20011cc57d2", "61693f2c9a34340012b1d5b7"] -> 这个不应该出现,因为它只包含我正在寻找的 3 个中的 2 个

【问题讨论】:

    标签: arrays mongodb mongodb-query


    【解决方案1】:

    我想你正在寻找$all

    docs 说:

    $all 运算符选择字段值是包含所有指定元素的数组的文档

    db.collection.find({
      subcategories: {
        $all: [
          "61729d550e8fe20011cc57d2",
          "61693f589a34340012b1d5d8",
          "61693f2c9a34340012b1d5b7"
        ]
      }
    })
    

    例如here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-20
      • 2015-07-24
      • 2018-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多