Model.create() 将一个或多个文档保存到数据库的快捷方式
Model.insertMany() 验证文档数组并将其插入MongoDB(如果它们都有效)的快捷方式
Model.bulkWrite() 发送多个insertOne,updateOne,updateMany,replaceOne,deleteOne,和/或deleteMany操作,以在一个命令MongoDB服务器。这比发送多个独立操作(例如,如果使用create())要快,因为bulkWrite()到MongoDB只有一次往返。
Model.create()
将一个或多个文档保存到数据库的快捷方式
例:
// 传入文档数据以及回调函数
Candy.create({ type: 'jelly bean' }, { type: 'snickers' }, function (err, jellybean, snickers) {
if (err) // ...
});
// 传入一个数组文档以及回调函数
var array = [{ type: 'jelly bean' }, { type: 'snickers' }];
Candy.create(array, function (err, candies) {
if (err) // ...
var jellybean = candies[0];
var snickers = candies[1];
// ...
});
// 回调是可选的;如果愿意,请使用返回的promise
var promise = Candy.create({ type: 'jawbreaker' });
promise.then(function (jawbreaker) {
// ...
})
// 常用方式
Candy.create({ type: 'jawbreaker' });
.then(res=>{})
.catch(err=>{})
Model.insertMany()
验证文档数组并将其插入MongoDB(如果它们都有效)的快捷方式。此函数比.create()快,因为它只向服务器发送一个操作,而不是为每个文档发送一个操作。Mongoose总是在向MongoDB发送insertMany之前验证每个文档。因此,如果一个文档存在验证错误,则不会保存任何文档,除非将ordered选项设置为false。
- [options.ordered «Boolean» = true] 如果为true,将在遇到第一个错误时快速失败。如果为false,则将插入它可以插入的所有文档,并在以后报告错误。ordered=false的insertMany()称为“unordered”insertMany()。
- [options.rawResult «Boolean» = false]如果为false,则返回的承诺将解析为通过mongoose文档验证的文档。如果为false,则将从MongoDB驱动程序返回原始结果,并且mongoose属性包含validationErrors(如果这是无序insertMany)。
例:
var arr = [{ name: 'Star Wars' }, { name: 'The Empire Strikes Back' }];
Movies.insertMany(arr, function(error, docs) {});
Model.bulkWrite()
发送多个**insertOne**,**updateOne**,**updateMany**,**replaceOne**,**deleteOne**,和/或**deleteMany**操作,以在一个命令MongoDB服务器。这比发送多个独立操作(例如,如果使用**create()**)要快,因为**bulkWrite()**到MongoDB只有一次往返。
例:
Character.bulkWrite([
{
insertOne: {
document: {
name: 'Eddard Stark',
title: 'Warden of the North'
}
}
},
{
updateOne: {
filter: { name: 'Eddard Stark' },
// If you were using the MongoDB driver directly, you'd need to do
// `update: { $set: { title: ... } }` but mongoose adds $set for
// you.
update: { title: 'Hand of the King' }
}
},
{
deleteOne: {
{
filter: { name: 'Eddard Stark' }
}
}
}
]).then(handleResult);