目前我使用保存来添加单个文档。假设我有一组文档,希望将其存储为单个对象。有没有办法通过单个函数调用将它们全部添加,然后在完成后获得单个回调?我可以单独添加所有文档,但管理回调以在一切完成后解决问题。
最佳答案
Mongoose 还没有实现批量插入(参见 issue #723 )。
由于您知道要保存的文档数量,您可以编写如下内容:
var total = docArray.length
, result = []
;
function saveAll(){
var doc = docArray.pop();
doc.save(function(err, saved){
if (err) throw err;//handle error
result.push(saved[0]);
if (--total) saveAll();
else // all saved here
})
}
saveAll();
当然,这是一个权宜之计,我建议使用某种流量控制库(我使用 q,它很棒)。
关于node.js - 如何在 Mongoose/Node.js 中同时保存多个文档?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10266512/