2016-10-14 17 views
0

MongoDBでは、一度に複数のファイルをjson形式でアップセットするにはどうすればよいですか?複数のレコードのUpsertクエリ

私は

db.sample.update(
    { name: "harish" }, 
    { 
     $set: { "size": 2015 }, 
     $setOnInsert: { "name": "hi" } 
    }, 
    { upsert: true } 
) 

を使用して単一のレコードをアップサートすることができる午前しかし、どのように、私は数百万レコードが含まれているJSONファイルをアップサートのですか? "" "mouli"、 "company": "jp"、 "size":40、 "role": "architect"} {"name": "siva"、 "company": " IBM "、" size ":30、" role ":" architect "} {" name ":" siva sai "、" company ":" cisco "、" size ":220、" role ":" CEO "} { "name": "siva {" name ":" durga prasad "、" company ":" big datamatica "、" size ":50、" role ":" CEO "} sai varma"、 "company": "karbon" 「サイズ」:50、「役割」:「トレーナー」){「名前」:「ジャガー」、「会社」:「アマゾン」、「サイズ」:500、「役割」:「開発者」}

+0

サンプルのjsonファイルデータを含めるように質問を更新できますか? – chridam

+0

私はこの ようなレコードを持っている私は、この のように更新する必要が {「名」:「CEO」「ドゥルガーのプラサド」、「会社」:「ビッグdatamatica」、「サイズ」:50、「役割」} {"名前": "durga prasad"、 "会社": "google"、 "サイズ": "役割": "CEO"} mongoimportを使用した後 {"name": "durga 50 "、"役割 ":" CEO "} {" name ":" durga prasad "、" company ":" google "、" size ":50" prasad "、" company ":" big datamatica " 、 "role": "CEO"} 私は両方のレコードを取得しています。更新されたレコードのみが必要です フィールドが存在しない場合は、既存のレコード –

+1

jsonオブジェクトをあなたの質問に追加してください。あなたはあなたの質問の下の編集リンクをクリックすることでそれを行うことができます。その後、あなたのコメントを削除します。 – reporter

答えて

1

mongodbのUpsertは条件に一致するレコードを更新することを意味し、mongodbがレコード一致条件を見つけられなかった場合は、クエリで言及した値を持つ新しい文書を挿入します。

複数のレコードを一度に更新できますが、文書の一致条件が見つからない場合は1つのレコードしか挿入しません。

さらにもう1つ、複数のレコードを更新するオプションにmulti:trueを追加する必要があります。

db.sample.update({name: "harish"},{$set: {"size": 2015 }, $setOnInsert: { "name": "hi"}},{multi:true, upsert:true}) 
関連する問題