📜  mongoose | insertMany()函数(1)

📅  最后修改于: 2023-12-03 14:44:23.153000             🧑  作者: Mango

Mongoose | insertMany()函数

在Mongoose中,insertMany()函数用于将一个或多个文档插入到集合中。

语法

insertMany()的语法如下:

Model.insertMany(docs, [options], [callback])

其中:

  • docs:要插入的文档对象或对象数组。
  • options:插入选项,可选参数。
  • callback:回调函数,插入操作完成后将被调用。回调函数带有两个参数,错误对象和插入的文档。
实例

假设有一个名为users的集合,我们要将一组用户信息插入其中,代码如下:

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

// 用户模式
const userSchema = new Schema({
    name: String,
    age: Number,
    email: String
});

// 用户模型
const User = mongoose.model('User', userSchema);

// 要插入的用户
const users = [
    { name: '张三', age: 20, email: 'zhangsan@example.com' },
    { name: '李四', age: 22, email: 'lisi@example.com' },
    { name: '王五', age: 24, email: 'wangwu@example.com' }
];

// 插入用户,并输出插入结果
User.insertMany(users, function(error, docs) {
    if (error) {
        console.log(error);
    } else {
        console.log('插入成功:');
        console.log(docs);
    }
});

在这个例子中,我们创建了一个用户模式和一个用户模型,并定义了一组要插入的用户信息。然后,我们调用insertMany()函数将这些用户信息插入到users集合中。

执行以上代码后,我们会发现插入成功,并返回插入的文档对象:

插入成功:
[
  { _id: 60c4cbc4ccdd7e348e85a0ec, name: '张三', age: 20, email: 'zhangsan@example.com' },
  { _id: 60c4cbc4ccdd7e348e85a0ed, name: '李四', age: 22, email: 'lisi@example.com' },
  { _id: 60c4cbc4ccdd7e348e85a0ee, name: '王五', age: 24, email: 'wangwu@example.com' }
]

如果我们将docs参数改为一个对象而不是数组,那么也可以插入单个文档。

插入选项

insertMany()函数的第二个参数是插入选项,通常情况下不需要指定。如果需要指定,可以在选项对象中提供以下属性:

  • ordered:布尔值,表示是否按顺序插入文档,默认为true
  • rawResult:布尔值,表示是否返回原始插入结果,默认为false
  • writeConcern:写入关注,一个对象类型,表示插入操作的写入关注。
注意事项
  • insertMany()函数是异步执行的,需要传入回调函数以便在插入操作完成后处理结果。
  • 如果文档中包含_id字段,则该字段的值必须是唯一的。
  • 如果传入的文档数组中有某个文档插入失败,那么整个插入操作都将失败。可以通过设置ordered选项为false来跳过插入失败的文档,继续插入其他文档。
  • insertMany()函数不会自动把文档保存到MongoDB中,需要手动调用save()方法或create()方法保存文档。