2016-01-05 50 views
1

我存储在MongoDB中这样如何更新MongoDB的数组值

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

我想量更新来自115135文档。

我试图更新像这样的值。

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

但我得到一个错误。

的错误是

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

任何人都可以在这方面的帮助,我需要实现这个从蟒蛇工作。

+0

db.fiction.update({ “斯诺”: “1”},{$组:{ “金额”:135}}) –

回答

1

使用$ positional操作者在您的更新,因为这识别元件在阵列中没有明确地指定在阵列中的它的位置来更新:

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

$运算符用于通过阵列进行迭代列表更新。

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