在MongoDB中批量插入文档有两种方法:
db.collection.insert
或Bulk.insert
- 自v2.6起可用哪一个更高效?我假设后者在单个批量写入操作块中与其他写入操作结合使用时非常方便,因此第一个更高效。但是,有没有人做过任何测试,或者有相关的逻辑或经验证据?
答案 0 :(得分:5)
在mongo shell提示符下,键入
db.test.insert
您将看到此功能的代码。如果您阅读它,您会看到将数组传递给insert
并进行批量插入是一回事。您需要查看整个代码,这些代码太长而无法在此处发布,以确切了解发生了什么,但关键部分是
var isMultiInsert = Array.isArray(obj);
if (isMultiInsert) {
obj.forEach(function(doc) {
bulk.insert(doc);
});
}
else {
bulk.insert(obj);
}
try {
result = bulk.execute(wc);
if (!isMultiInsert)
result = result.toSingleResult();
}
此代码来自2.6.7 mongo shell。