1つのフィールドが存在しない場合、Mongodbは複数のドキュメントを追加します

ガンダルフザグレイ

コレクションに追加したいドキュメントがいくつかあります。

配列内のすべてのオブジェクトを1回のアクションで追加したいのですが、何かが存在する場合はそれを置き換えたいと思います。

{"a":0, "b":0, "myKey": "aaaaaa"}
{"a":0, "b":0, "myKey": "hhhhhh"}
{"a":0, "b":0, "myKey": "oooooo"}
{"a":0, "b":0, "myKey": "mmmmmm"}
{"a":0, "b":0, "myKey": "eeeeee"}

myKeyがオブジェクトの一意のキーである場合、私のコレクションは次のようになります。

これらは、コレクションに追加したいドキュメントです。

[
  {"a":1, "b":2, "myKey": "aaaaaa"},
  {"a":2, "b":3, "myKey": "bbbbbb"},
  {"a":3, "b":4, "myKey": "cccccc"},
  {"a":4, "b":5, "myKey": "dddddd"},
  {"a":6, "b":7, "myKey": "eeeeee"}
] 

私のコレクションをこのように見せたい

{"a":1, "b":2, "myKey": "aaaaaa"}
{"a":0, "b":0, "myKey": "hhhhhh"}
{"a":0, "b":0, "myKey": "oooooo"}
{"a":0, "b":0, "myKey": "mmmmmm"}
{"a":6, "b":7, "myKey": "eeeeee"}
{"a":2, "b":3, "myKey": "bbbbbb"}
{"a":3, "b":4, "myKey": "cccccc"}
{"a":4, "b":5, "myKey": "dddddd"}

多くの更新アクションを送信せずにそれを行う方法はありますか?

クリダム

bulkWriteこの操作には、次のように使用できます。

const array = [
  {"a":1, "b":2, "myKey": "aaaaaa"},
  {"a":2, "b":3, "myKey": "bbbbbb"},
  {"a":3, "b":4, "myKey": "cccccc"},
  {"a":4, "b":5, "myKey": "dddddd"},
  {"a":6, "b":7, "myKey": "eeeeee"}
];
let ops = [];
array.forEach(({ a, b, myKey }) => {
    ops.push({
       "updateOne": { 
           "filter": { myKey },
           "update": { "$set": { a, b, myKey } },
           "upsert": true   
       }            
    })           
});

db.collection.bulkWrite(ops);

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Mongoのドキュメントにフィールドが存在しない場合は追加します

分類Dev

MongoDB Aggregateは、ドキュメントに新しいフィールドを追加します。別のフィールドがすでに存在する場合

分類Dev

Mongodbは複数のドキュメントを更新し、存在しない場合は挿入します

分類Dev

MongoDBは、フィールドが存在しないすべてのドキュメントを検索し、存在する場合はフィールド演算子($ max)条件を適用します

分類Dev

フィールドが存在しない場合のMongoDBドキュメントの更新

分類Dev

MongoDBにドキュメントが存在しない場合はドキュメントを作成し、アトミックにフィールドを追加します

分類Dev

MongoDBドキュメントフィールドが存在しない場合にのみ更新するにはどうすればよいですか?

分類Dev

ドキュメントがPHPに存在する場合、MongoDBはすべてのフィールドを更新します

分類Dev

あるフィールドの値がnullでなく、別のフィールドに存在しないMongoDBドキュメントを検索します

分類Dev

フィールドが存在しないすべてのドキュメントを検索し、フィールドが存在する場合は条件を適用します

分類Dev

MongoDB-複数のドキュメントソリューションを更新します-ドキュメントカウンターを更新するか、存在しない場合は挿入します

分類Dev

フィールドが存在しない場合にすべてのドキュメントにフィールドを挿入する方法

分類Dev

ユーザー名またはメールアドレスがMongoDBに存在しない場合は、新しいドキュメントを作成します

分類Dev

MongoDBフィールド/参照が他のコレクションに存在する場合、ドキュメントを集計から除外します

分類Dev

アイテムの配列内のフィールドが存在する場合はそれをインクリメントするマングースクエリ、それ以外の場合はドキュメントに追加します(このタイトルの表現に苦労しています)

分類Dev

他の配列埋め込みドキュメントに同じフィールド値がない場合は、新しいドキュメントを配列に追加します

分類Dev

存在する場合は行のフィールドをインクリメントし、存在しない場合は新しい行を挿入します

分類Dev

存在しない場合はelasticsearchにドキュメントを追加します

分類Dev

MongoDB:フィールドが存在しないことでドキュメントを検索しますか?

分類Dev

MongoDBは、2つのフィールドを比較し、すべてのドキュメントで別のフィールドを合計します

分類Dev

別のフィールドが存在しない場合は、1つのフィールドが必要です

分類Dev

MongoDBドキュメントに複数のフィールドが存在するかどうかを確認します

分類Dev

Elasticsearch指定されたフィールドの最後のドキュメントが存在する場合はそれをGETします

分類Dev

MongoDBは、2つのサブドキュメントからフィールドを計算し、新しいドキュメントを生成します

分類Dev

変更されたフィールドが常に同じではない場合に、MongoDBドキュメントのフィールドを更新する方法

分類Dev

PHPを使用してMongoDBドキュメントにもう1つのフィールドを追加するにはどうすればよいですか?

分類Dev

MySQLクエリ-関連するテーブルに1つのフィールドが存在しない場合でも、コンサルトを返します

分類Dev

MongoDBでの1つのフィールドの累積である1つのドキュメントをコレクションに追加します

分類Dev

サブドキュメントの値が存在しない場合、MongoDBはサブドキュメントに挿入します

Related 関連記事

  1. 1

    Mongoのドキュメントにフィールドが存在しない場合は追加します

  2. 2

    MongoDB Aggregateは、ドキュメントに新しいフィールドを追加します。別のフィールドがすでに存在する場合

  3. 3

    Mongodbは複数のドキュメントを更新し、存在しない場合は挿入します

  4. 4

    MongoDBは、フィールドが存在しないすべてのドキュメントを検索し、存在する場合はフィールド演算子($ max)条件を適用します

  5. 5

    フィールドが存在しない場合のMongoDBドキュメントの更新

  6. 6

    MongoDBにドキュメントが存在しない場合はドキュメントを作成し、アトミックにフィールドを追加します

  7. 7

    MongoDBドキュメントフィールドが存在しない場合にのみ更新するにはどうすればよいですか?

  8. 8

    ドキュメントがPHPに存在する場合、MongoDBはすべてのフィールドを更新します

  9. 9

    あるフィールドの値がnullでなく、別のフィールドに存在しないMongoDBドキュメントを検索します

  10. 10

    フィールドが存在しないすべてのドキュメントを検索し、フィールドが存在する場合は条件を適用します

  11. 11

    MongoDB-複数のドキュメントソリューションを更新します-ドキュメントカウンターを更新するか、存在しない場合は挿入します

  12. 12

    フィールドが存在しない場合にすべてのドキュメントにフィールドを挿入する方法

  13. 13

    ユーザー名またはメールアドレスがMongoDBに存在しない場合は、新しいドキュメントを作成します

  14. 14

    MongoDBフィールド/参照が他のコレクションに存在する場合、ドキュメントを集計から除外します

  15. 15

    アイテムの配列内のフィールドが存在する場合はそれをインクリメントするマングースクエリ、それ以外の場合はドキュメントに追加します(このタイトルの表現に苦労しています)

  16. 16

    他の配列埋め込みドキュメントに同じフィールド値がない場合は、新しいドキュメントを配列に追加します

  17. 17

    存在する場合は行のフィールドをインクリメントし、存在しない場合は新しい行を挿入します

  18. 18

    存在しない場合はelasticsearchにドキュメントを追加します

  19. 19

    MongoDB:フィールドが存在しないことでドキュメントを検索しますか?

  20. 20

    MongoDBは、2つのフィールドを比較し、すべてのドキュメントで別のフィールドを合計します

  21. 21

    別のフィールドが存在しない場合は、1つのフィールドが必要です

  22. 22

    MongoDBドキュメントに複数のフィールドが存在するかどうかを確認します

  23. 23

    Elasticsearch指定されたフィールドの最後のドキュメントが存在する場合はそれをGETします

  24. 24

    MongoDBは、2つのサブドキュメントからフィールドを計算し、新しいドキュメントを生成します

  25. 25

    変更されたフィールドが常に同じではない場合に、MongoDBドキュメントのフィールドを更新する方法

  26. 26

    PHPを使用してMongoDBドキュメントにもう1つのフィールドを追加するにはどうすればよいですか?

  27. 27

    MySQLクエリ-関連するテーブルに1つのフィールドが存在しない場合でも、コンサルトを返します

  28. 28

    MongoDBでの1つのフィールドの累積である1つのドキュメントをコレクションに追加します

  29. 29

    サブドキュメントの値が存在しない場合、MongoDBはサブドキュメントに挿入します

ホットタグ

アーカイブ