目前我使用保存来添加单个文档。假设我有一组文档,希望将其存储为单个对象。有没有办法通过单个函数调用将它们全部添加,然后在完成后获得单个回调?我可以单独添加所有文档,但管理回调以在一切完成后解决问题。

最佳答案

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/

10-16 21:22