代码之家  ›  专栏  ›  技术社区  ›  Rupesh

检查数组中是否存在所有元素

  •  1
  • Rupesh  · 技术社区  · 8 年前

    我正在尝试使用mongoose在MongoDB数据库的数组中查找数组的所有元素。

    {
      row: "A",
      reserve: [1,2,3]
    }
    

    如果我的查询数据-

    {
      row: "A",
      arr: [1,2] // I want it to return result
    }
    

    如果我的查询数据

    {
      row: "A",
      arr: [1,2,4] // I want it to return null
    }
    

    我想更新数据,但每次都在更新

    Reserved.updateOne({row: "A", reserve: {$in: arr}, {
      $push: {
        reserve: arr
      }
    }, (err, result) => {
      // ...
    });
    

    请帮帮我。

    2 回复  |  直到 8 年前
        1
  •  0
  •   vizsatiz    8 年前

    你可以用 $all 操作员( link ). 比如:

    db.collection.updateOne(
            {
              row: "A",
              reserve: { $all: array } 
            }
    )
    

    希望这有帮助!!

        2
  •  2
  •   Ashh    8 年前

    $all 运算符匹配数组中的所有元素。

    从文件中

    这个 $全部 运算符选择字段值所在的文档 包含所有指定元素的数组。

    db.collection.updateOne({ "row": "A", "reserve": { "$all": array }})
    

    甚至用find查询

    db.collection.find({ "row": "A", "reserve": { "$all": array }})