對於大量的插入,絕對會更快。這是因爲你只會做一個數據庫調用。
但是你自己不難測試。
var X = 100000;
var start = new Date();
for (var i = 0; i < X; i++) {
db.coll1.insert({number: i});
}
var time1 = new Date() - start;
,第二個
var start = new Date();
for (var i = 0, arr = []; i < X; i++) {
arr.push({number: i});
}
db.coll2.insert(arr);
var time2 = new Date() - start;
而且因爲它是在該意見提出,可以嘗試bulk插入(這在我看來是做一樣的2,但我可能是錯的) :
var start = new Date();
var bulk = db.coll3.initializeUnorderedBulkOp();
for (var i = 0; i < X; i++) {
bulk.insert({number: i});
}
bulk.execute();
var time3 = new Date() - start;
這裏是我的機器time1 = 33846
,time2 = 2191
和time3 = 2203
結果。正如你所看到的,2和3之間的差異可以忽略不計,但是1差不多延長了15倍(如果你將增加X,它會變得更大)。如果我是你,我會使用記錄的批量插入。
底部的方式應該會更好,它使用更少的查詢。這似乎是一個測試查詢,我認爲你應該採用「第二種方法」 – Abhishek 2015-04-01 07:09:32
兩種方式都不應該使用bulkinset API:http://blog.mongodb.org/post/84922794768/mongodbs-new-bulk-api – Sammaye 2015-04-01 07:30:11