如何更新mongodb数组值

时间:2016-01-05 06:32:41

标签: mongodb python-3.x

我有一个像mongodb这样存储的文件

"Fiction" : [
           {
                   "SNo": "1",
                   "authorName" : "Enid Blyton",
                   "bookName" : "Secret series",
                   "Amount" : 115
           },
           {
                   "SNo": "2",
                   "authorName" : "Enid Blyton",
                   "bookName" : "Mystery series",
                   "Amount" : 150
           }
   ]

我想将金额从115更新为135

我试图更新这样的值。

db.fiction.update({"Fiction.SNo":"1"},{$set:{"Fiction.Amount":135}})

但是我收到了错误。

错误是

cannot use the part (Fiction of Fiction.Amount) to traverse the element 

任何人都可以帮忙解决这个问题,我需要在python中实现这一点。

2 个答案:

答案 0 :(得分:1)

在更新中使用 $ positional 运算符,因为它标识要更新的数组中的元素,而不显式指定其在数组中的位置:

db.fiction.update({"Fiction.SNo":"1"},{$set:{"Fiction.$.Amount":135}})

答案 1 :(得分:1)

$运算符用于在更新时迭代数组列表。

您的查询将是: db.Fiction.update({"Fiction.SNo":"1"},{$set:{"Fiction.$.Amount" : 135}})