当前位置: 首页 > 知识库问答 >
问题:

猫鼬创建多个文档

陶胤运
2023-03-14

我知道在最新版本的Mongoose中,您可以将多个文档传递给create方法,在我的例子中,甚至可以传递一个文档数组。

var array = [{ type: 'jelly bean' }, { type: 'snickers' }];
Candy.create(array, function (err, jellybean, snickers) {
    if (err) // ...
});

我的问题是数组的大小是动态的,所以在回调中创建一个对象数组会很有帮助。

var array = [{ type: 'jelly bean' }, { type: 'snickers' }, ..... {type: 'N candie'}];
Candy.create(array, function (err, candies) {
    if (err) // ...

    candies.forEach(function(candy) {
       // do some stuff with candies
    });
});

文档中没有,但这样做可能吗?

共有3个答案

严瑞
2023-03-14

根据GitHub上的这张票证,如果使用create()时提供数组,Mongoose 3.9和4.0将返回数组;如果提供排列,将返回参数排列。

白博易
2023-03-14

在Mongoose v5.1.5中,我们可以使用insertMany()方法传递数组。

const array = [
    {firstName: "Jelly", lastName: "Bean"},
    {firstName: "John", lastName: "Doe"}
];

Model.insertMany(array)
    .then(function (docs) {
        response.json(docs);
    })
    .catch(function (err) {
        response.status(500).send(err);
    });
谷梁俊楚
2023-03-14

您可以通过参数访问回调参数的变量列表。所以你可以做这样的事情:

Candy.create(array, function (err) {
    if (err) // ...

    for (var i=1; i<arguments.length; ++i) {
        var candy = arguments[i];
        // do some stuff with candy
    }
});
 类似资料:
  • 问题内容: 我刚开始是猫鼬。我有一个带猫鼬的创建脚本,该脚本用示例数据创建模式和数据库。 现在,我编写实际的应用程序。每次我的应用程序运行时,我是否需要创建模式对象,或者它已经以某种方式可用? 换句话说,我是否需要在每个使用猫鼬访问数据库的应用程序中运行此代码,还是仅在第一次运行此代码: 如果我有设置器/验证器/等,答案将如何变化? 问题答案: 一个定义就是让应用程序理解如何将数据从MongoDB

  • 我想知道mongoose是否有一些方法可以通过id集更新多个文档。例如: 我想知道的是,如果猫鼬能做这样的事情: 其中,ids是一个id数组,如['id1','id2','id3']-示例数组。对于find,同样的问题。

  • 问题内容: 我想让用户能够在我的Node应用程序中创建集合。我真的只见过猫鼬集合中的硬编码示例。有人知道是否有可能用猫鼬动态创建集合吗?如果是这样,那么一个例子将非常有帮助。 基本上,我希望能够在不同的集合中存储不同“事件”的数据。 IE事件:event1,event2,… eventN 用户可以在那里创建自己的自定义事件并将数据存储在该集合中。最后,每个事件可能有成百上千的行。我想让用户能够对他

  • 问题内容: 我要在item.comments列表中添加评论。在响应中将其输出之前,我需要获取comment.created_by用户数据。我应该怎么做? 我需要在res.json输出中填充comment.created_by字段: comment.created_by是我的猫鼬CommentSchema中的用户参考。它目前只给我一个用户ID,我需要它填充所有用户数据,密码和盐字段除外。 这是人们所

  • 问题内容: 当我使用猫鼬时,我发现了两种在nodejs中创建新文档的方法。 首先 : 第二 有什么区别吗? 问题答案: 是的,主要区别在于您可以在保存之前进行计算,也可以对构建新模型时出现的信息做出反应。最常见的示例是在尝试保存模型之前确保模型有效。其他一些示例可能是在保存之前创建任何缺失的关系,需要基于其他属性即时计算的值以及需要存在但可能永远不会保存到数据库(异常交易)的模型。 因此,作为您可

  • 问题内容: 我发现以下脚本: MongoDB具有“ multi”标志,用于更新多个文档,但是我无法使它与mongoose一起使用。这还不被支持还是我做错了什么? 问题答案: 目前,我认为Mongoose中存在一些问题,请参阅:https : //groups.google.com/forum/#%21topic/mongoose- orm/G8i9S7E8Erg 和https://groups.g