mongodb 将文档推送到数组中

问题描述 投票:0回答:1

我有以下收藏:

db.inventory.insertMany( [
   { item: "journal", instock: [ { warehouse: "A", qty: 5 }, { warehouse: "C", qty: 15 } ] },
   { item: "notebook", instock: [ { warehouse: "C", qty: 5 } ] },
   { item: "paper", instock: [ { warehouse: "A", qty: 60 }, { warehouse: "B", qty: 15 } ] },
   { item: "planner", instock: [ { warehouse: "A", qty: 40 }, { warehouse: "B", qty: 5 } ] },
   { item: "postcard", instock: [ { warehouse: "B", qty: 15 }, { warehouse: "C", qty: 35 } ] }
]);

现在,如果

instock
数组中没有包含
warehouse
C
的文档,那么我需要添加一个值为
C
的文档。

所以我用

$push
操作员尝试了这个:

db.inventory.updateMany(
    {"instock.warehouse": {$ne: "C"}},
    $push: {"instock": {"warehouse": "C", "qty": 04}}
)

这抛出

unexpcted token expected: ","

这里有什么问题吗?这与位置运算符

$
有关吗?

arrays mongodb nosql
1个回答
0
投票

尝试:

db.collection.updateMany({
  "instock.warehouse": {
    $ne: "C"
  }
},
{
  $push: {
    "instock": {
      "warehouse": "C",
      "qty": 4
    }
  }
})

游乐场示例中查看它是如何工作的

© www.soinside.com 2019 - 2024. All rights reserved.