2016-12-30 72 views
-1

我有這樣

{ 
    "_id" : ObjectId("5446757568567546456"), 
    "name" : "Duck-trailer", 
    "data" : [ 
     { 
      "date" : "1-1-2015", 
      "oldPrice" : 10, 
      "price" : 15 
     }, 
     { 
      "date" : "2-1-2015", 
      "oldPrice" : 10 
      "price" : 12 
     } 
     ] 
} 

所以我試圖通過ID和日期進行選擇,然後通過選擇嵌套數據對象中的日期更新價格收集失敗。

我的查詢沒有工作,得到了MongoError: cannot use the part..

myModel.update({_id: id, 'data.$.date':'2-1-2015'}, {'$set': {'data.$.price': 100}}, 
    function(err,result) { 
}) 
+0

在查詢中嘗試不帶$運算符。 'data.date':'2-1-2015' – Veeram

回答

1

錯誤,同時匹配你不需要的位置操作。

db.collection.update({"data.date":"2-1-2015"},{$set:{"data.$.price":100}}) 

這將價格定到100那裏是你輸入的日期匹配。

+0

爲什麼'data.date'然後'data。$。price'不是'data.price'? – Cassie