【问题标题】:Check if all values are $in an array in Mongoose检查是否所有值都 $ 在 Mongoose 的数组中
【发布时间】:2021-01-07 02:22:03
【问题描述】:

我有一个名为 obj 的 MongoDB 架构,看起来像这样

const objSchema = new mongoose.Schema({
  values: {
    type: [String],
    required: true,
  },
})

我有一个类似的 MongoDB 对象

{
  id: 1,
  values: "One", "Two", "Three"
}
{
  id: 2,
  values: "One", "Two", "Four"
}

我有一个包含以下值的数组

const arr = ["One", "Three"]

如何找到包含 arr 中所有元素的所有 MongoDB 对象。因此查询将返回 id 为 1 的对象,但不返回 id 为 2 的对象。

我不确定如何使用 $in 查询来实现这一点,我不确定是否还有其他选择。

谢谢

【问题讨论】:

    标签: javascript node.js arrays mongodb mongoose


    【解决方案1】:

    您可以简单地使用$all

    db.collection.find({
      "values": {
        $all: [
          "One",
          "Three"
        ]
      }
    })
    

    工作Mongo playground

    【讨论】:

      猜你喜欢
      • 2020-09-19
      • 2015-04-12
      • 1970-01-01
      • 1970-01-01
      • 2021-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      相关资源
      最近更新 更多