如何增加MongoDB中索引引用的数组元素?

tom*_*kas 5 mongodb

假设我们有一个包含这样的文档的集合:

{
 _id : "some id", 
 items: [
  {item: "item A", count: 5},
  {item: "item B", count: 3},
  {item: "item C", count: 9}
] 
}
Run Code Online (Sandbox Code Playgroud)

如何将项数组中的第三个(或任何其他索引值)元素的值增加1?

而且我想引用的不是像这个问题中的匹配值而是通过索引.

tom*_*kas 6

在 mongo shell 中,它可以通过以下方式完成:

db.my_collection.update(
 {_id: "some id"},
 {$inc: {"items.2.count": 1}}
)
Run Code Online (Sandbox Code Playgroud)

使用 PyMongo 可以这样完成:

db.my_collection.update_one({"_id": "some id"},
                            {"$inc": {"items." + str(2) + ".count": 1}}) 
Run Code Online (Sandbox Code Playgroud)