web-dev-qa-db-ja.com

オブジェクトの配列をMongoDBに挿入します

独自の事前定義された_id値を使用して、Mongoコレクションの「ルートレベルドキュメント」にオブジェクトの配列をどのように挿入できるのでしょうか。

db.MyCollection.insert(array);を試しましたが、MongoDBで生成された単一の_idの下にネストされたドキュメントを作成します。

var array = [

      { _id: 'rg8nsoqsxhpNYho2N',
        goals: 0,
        assists: 1,
        total: 1                  },


      { _id: 'yKMx6sHQboL5m8Lqx',
        goals: 0,
        assists: 1,
        total: 1                  }];

db.MyCollection.insert(array);

enter image description here

欲しいもの

enter image description here

14
justdiehard

配列オブジェクトを繰り返し処理して、一度に1つずつ挿入してみませんか?

array.forEach((item) => db.MyCollection.insert(item));
3
Ikechi Michael

このリンクを使用して、正確な結果を希望どおりに取得します。

https://docs.mongodb.org/manual/tutorial/insert-documents/#insert-a-document

1
Shantanu Madane

MongoDB Bulk を使用して、データベースへの1回の呼び出しで複数のドキュメントを挿入できます。

最初に配列を反復処理し、各アイテムに対してbulkメソッドを呼び出します。

bulk.insert(item)

ループの後、executeを呼び出します。

bulk.execute()

詳細については、参考文献をご覧ください。