📅  最后修改于: 2023-12-03 14:44:23.153000             🧑  作者: Mango
在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()
方法保存文档。