当前位置: 首页 > 面试题库 >

如何在Mongoose / Node.js中同时保存多个文档?

端木存
2023-03-14
问题内容

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


问题答案:

猫鼬尚未实现大容量插入(请参阅问题#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很棒)。



 类似资料:
  • 目前,我使用保存来添加单个文档。假设我有一个希望存储为单个对象的文档数组。有没有一种方法添加他们所有与一个单一的函数调用,然后得到一个单一的回调,当它完成?我可以单独添加所有文档,但管理回调以确定何时完成所有操作会有问题。

  • 问题内容: 以上似乎不起作用。记录仍然存在。 有人可以修复吗? 问题答案: 是一系列文档。所以它没有方法 您可以分别迭代和删除数组中的每个文档。 或-由于看起来您是通过(可能是)唯一的ID查找而不是来查找文档的。

  • 我想通过猫鼬进行API调用,以将一批选定的(下面的模式)子文档的日期字段更新为当前日期。 Player模式: 我创建了一个复选框,用户可以在其中选择多个(以及他们的数组中的特定'卡片'子文档),并将所有选定的的特定卡片的日期更改为相同的日期...作为反应,我将相应的ObjectIds在主体中批处理在一起,并将选定的玩家/卡片组合发送到一个对象数组中,如下所示(其中数字表示相同的分组玩家 我正在发送

  • 我在将柱状图从“for循环”保存到多个pdf文件时遇到问题。 我已经试过了。savefig()和img2pdf。 我要么保存一个绘图,要么一个也不保存。我想将每个dist[I]保存到pdf文件中。最后一行没有真正起作用。。。

  • 问题内容: 我正在用Node.js和猫鼬编写一个Webapp。如何对通话结果进行分页?我想要一个与SQL 相当的功能。 问题答案: 在通过Rodolphe提供的信息仔细研究了Mongoose API之后,我想出了以下解决方案:

  • 我的模式是 在这个模式中,“uid”代表用户标识符,而“答案”数组存储学生回答的答案。在每个答案中,qid与问题ID相关,“内容”是学生的真实答案,“时间”是答案的修改时间戳。 在这里,我使用mongoose将新答案插入到数组中 一般来说,通过使用addToSet命令,应答数组中的元素应该是唯一的,但在我的示例中,应答数组只能有多个相同的嵌入文档,除了每个嵌入文档都有一个唯一的OjbectId\u