Nodejs mongoose 用 Model.create 插入一个 array(多条文档),callback的参数怎么写?

Nodejs mongoose 用 Model.create 插入一个 array(多条文档),callback的参数怎么写?

http://mongoosejs.com/docs/api.html#model_Model.create 官网是列出所有的文档名: Candy.create({ type: ‘jelly bean’ }, { type: ‘snickers’ }, function (err, jellybean, snickers) { if (err) // … });

如果很多条记录,要怎么搞? jellybean, snickers …


5 回复

当然可以!在使用 Mongoose 的 Model.create 方法插入多个文档时,你可以传递一个包含多个文档的对象数组。Mongoose 会处理这些文档并将它们插入到数据库中。回调函数将接收三个参数:第一个是错误对象(如果有的话),第二个是一个包含所有成功创建的文档的数组,第三个是一个带有验证错误的数组(如果有的话)。

以下是一个示例代码,展示了如何使用 Model.create 插入多个文档,并处理回调中的参数:

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

// 定义一个简单的 Candy 模型
const candySchema = new Schema({
    type: String
});

const Candy = mongoose.model('Candy', candySchema);

// 连接到 MongoDB 数据库
mongoose.connect('mongodb://localhost/testdb', { useNewUrlParser: true, useUnifiedTopology: true });

// 要插入的文档数组
const candies = [
    { type: 'jelly bean' },
    { type: 'snickers' },
    { type: 'chocolate' }
];

// 使用 Model.create 插入多个文档
Candy.create(candies, function(err, createdCandies, validationErrors) {
    if (err) {
        console.error('Error creating documents:', err);
        return;
    }

    console.log('Created Candies:', createdCandies);
    console.log('Validation Errors:', validationErrors);
});

解释

  1. 定义模型:我们首先定义了一个名为 Candy 的 Mongoose 模型。
  2. 连接数据库:使用 mongoose.connect 方法连接到 MongoDB 数据库。
  3. 准备数据:定义一个包含多个文档的数组 candies
  4. 插入文档:调用 Candy.create 方法插入这些文档。回调函数接收三个参数:
    • err:如果有任何错误发生(例如数据库连接问题或验证错误),它将包含错误信息。
    • createdCandies:一个数组,包含所有成功创建的文档。
    • validationErrors:一个数组,包含每个文档的验证错误(如果有)。

这样,你就可以通过回调函数中的参数来处理插入操作的结果。


Candy.create([{ ... },{...}] , callback)

签名: 交流群244728015 《Node.js 服务器框架开发实战》 http://url.cn/Pn07N3

Candy.create([{ ... }, { ... }], function (err) {
  if (err) {
    return;
  }
  var docs = Array.prototype.slice.call(arguments, 1);
  // docs 就是才创建的所有记录
});

原来是js的用法,感谢

当你使用 Model.create 方法插入多个文档时,你需要传递一个数组作为参数。回调函数中的参数将包含创建的所有文档。如果你只关心错误信息和所有创建的文档,可以这样处理:

示例代码

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

// 定义模型
const CandySchema = new Schema({
    type: String
});
const Candy = mongoose.model('Candy', CandySchema);

// 插入多个文档
const candiesToCreate = [
    { type: 'jelly bean' },
    { type: 'snickers' }
];

Candy.create(candiesToCreate, function (err, createdCandies) {
    if (err) {
        console.error("Error creating candies:", err);
        return;
    }
    console.log("Created candies:", createdCandies);
});

解释

  1. 定义模型:首先定义一个 Candy 模型。
  2. 准备数据:创建一个包含多个文档的数组 candiesToCreate
  3. 插入数据:使用 Candy.create 方法插入多个文档。注意这里传递的是一个数组而不是单个对象。
  4. 回调函数:回调函数接收两个参数:第一个是错误对象 err,第二个是创建的所有文档的数组 createdCandies

通过这种方式,你可以轻松地插入多个文档,并在回调函数中处理结果。

回到顶部