2016-12-30 8 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

関連する問題