2016-04-27 17 views
10

Mongo koleksiyonuna "kök düzeyindeki belgelere" kendi önceden tanımlanmış _id değerleri ile nasıl nesne ekleyebileceğimi merak ediyorum.Öğe dizisini MongoDB'ye ekleme

db.MyCollection.insert(array);'u denedim ancak MongoDB'de tek bir oluşturulmuş _id altında yuvalanmış belgeler oluşturur.

var array = [ 

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


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

db.MyCollection.insert (dizi); Ben

enter image description here

+1

'db.MyCollection.insert (dizi)' çalışmalıdır. Herhangi bir hata mesajı alıyor musunuz? – styvane

+0

Ekleme işlemi çalışıyor ve veri toplanıyor, ancak "root" düzeyinde nesne istiyorum ve şimdi "0" altına eklendiler: {}, "1": {} vb. Tüm nesnelerimi _id değeri – justdiehard

+0

ile "root-level" belgesi olarak eklemek istiyorum. Gösterdiğiniz belgeyle bu sonucu elde edemezsiniz. – styvane

cevap

0

istiyorum ne

enter image description here

Veritabanına tek bir çağrıda birden fazla belgeyi eklemek için MongoDB Bulk kullanabilirsiniz. Döngü sonra

bulk.insert(item) 

execute çağırır: senin dizinin üzerinde

İlk yinelerler ve her öğe için bulk yöntemini çağırın

bulk.execute() 

daha fazla bilgi edinmek için hakemli belgelerine bir göz atın.

3

Neden dizi nesneler üzerinde yineleme değil ve onlara birer birer yerleştirin?

array.forEach((item) => db.MyCollection.insert(item)); 
+0

Bunu yaptım, ama – justdiehard

0

db.collection.insertMany() (3.2 desteklenen) ne ihtiyaç vardır:

db.users.insertMany(
    [ 
    { name: "bob", age: 42, status: "A", }, 
    { name: "ahn", age: 22, status: "A", }, 
    { name: "xi", age: 34, status: "D", } 
    ] 
) 

çıkışı:

{ 
    "acknowledged" : true, 
    "insertedIds" : [ 
     ObjectId("57d6c1d02e9af409e0553dff"), 
     ObjectId("57d6c1d02323d119e0b3c0e8"), 
     ObjectId("57d6c1d22323d119e0b3c16c") 
    ] 
} 
+0

eklemek için "sonuç/başarılı" fonksiyonu eklememe izin vermemek, buna benzer bir şekilde "sürülmek" için bir yol var mı? her zaman bir dizi itmek istiyorum ama çoğunlukla öğeler mevcut olacak – PirateApp