2017-12-14 8 views
0

同じコレクションの複数のドキュメントを更新するために、JSONの "root"にフィールドを追加する必要があり、新しいオブジェクトを既存の配列に追加するのに苦労していますログと呼ばれます。

私は、このエラー怒鳴るを取得していると私はマルチを取り出してみました。この

db.getCollection('charges'). 
update({'supports.dest':ObjectId("xyz"), 
     date:{ 
          $gte: new Date(2017, 11), 
          $lt: new Date(2017, 12) 
      }, 
     "status": {$nin : ["Captured"] 
       } 
     }, 
     {$set: {"status": "BillingSuspended", 
      "replacedStatus":"Captured"} 
     }, 
     {multi:true}, 
     {$push : 
     {logs : {"replacedStatus" : "Captured" , 
       date: new Date ('2017-12-13T22:00:00.000Z') 
       } 
     } 
     } 
) 

をしようとしている:真が、その後、私は私が、同時に多くのドキュメントを更新することを可能にするマルチ財産を失います。私はRobomongoで実行されるクエリが欲しかった。あなたが私を助けることができれば、みなさんに感謝します。

エラー:

[Failed to execute script. 

Error: Fourth argument must be empty when specifying upsert and multi with an object. : 
[email protected]/mongo/shell/collection.js:522:1 
[email protected]/mongo/shell/collection.js:552:18 
@(shell):1:1] 

1

+0

のように試してみて、これは、あなたの質問に答えるのでしょうか? https://stackoverflow.com/questions/38864917/unable-to-update-the-data-in-mongodb – Isaac

+0

このようなものは、{ "supports.dest":ObjectId( "xyz")、 "date 「:{ "$ GTE":新しい日付(2017年、11)、 "$のLT":新しい日付(2017年、12) }、 "ステータス":{ "$ニン":[ "撮影" ] } }、 { "$セット":{ "ステータス": "BillingSuspended"、 "replacedStatus": を "撮影"}、 "$プッシュ":{ "ログ":{ "replacedStatus": "撮影"、 "日付":新しい日付( '2017-12-13T22:00:00.000Z') }} }、{ "マルチ":真 } ' – Veeram

+0

おかげ@Veeram!出来た! –

答えて

0

あなたはこの

db.getCollection('charges').update(
     { 
      'supports.dest': ObjectId("xyz"), 
      'date': { 
       '$gte': new Date(2017, 11), 
       '$lt': new Date(2017, 12) 
      }, 
      "status": { 
       $nin: ["Captured"] 
      } 
     }, 
     { 
      $set: { 
       "status": "BillingSuspended", 
       "replacedStatus": "Captured" 
      }, 
      $push: { 
       logs: { 
        "replacedStatus": "Captured", 
        date: new Date('2017-12-13T22:00:00.000Z') 
       } 
      } 
     }, 
     { 
      multi: true 
     }) 
+0

ありがとう@Ratan! –

+0

あなたは私の答えを承認することができます –

関連する問題