Nic*_*den 1 mongoose mongodb node.js
在 Model.insertMany 的文档中,它说当 options.ordered == true 时,该方法将在第一个错误时失败。
\n\nhttps://mongoosejs.com/docs/api.html#model_Model.insertMany
\n\n\n\n\n[options.ordered \xc2\xabBoolean\xc2\xbb = true] 如果为 true,则在遇到第一个错误时快速失败。如果为 false,将插入它可以插入的所有文档并稍后报告错误。ordered = false 的 insertMany() 称为“无序”insertMany()。
\n
可以:
\n\n或者
\n\noptions.ordered = true (默认值):
Mongoose 在将insertMany发送到 MongoDB 之前始终验证每个文档。因此,如果一个文档存在验证错误,则不会保存任何文档,除非您将有序选项设置为 false。
请注意,这是验证,而不是插入期间处理异常的方式。
如果所有文档都通过验证,则来自MongoDb 文档:
排除 Write Concern 错误,有序操作在发生错误后停止,而无序操作继续处理队列中任何剩余的写操作。
请注意示例下的最后一段insertMany:
注意插入了一个文档:_id:13的第一个文档会插入成功,但第二个插入会失败。这也将阻止插入队列中剩余的其他文档。
如果命令为 false,则插入操作将继续处理任何剩余文档。
您似乎暗示您需要一种事务性方法。为此,您应该查看此内容并查看您的 MongoDB 版本是否支持它。
选项.ordered = false:
由于您明确指定您不关心插入顺序,因此它将继续插入并简单地跳过有例外的插入顺序。
同样来自MongoDB 文档:
如果ordered设置为false,文档将以无序格式插入,并且可以由mongod重新排序以提高性能。如果使用无序的 insertMany(),应用程序不应依赖于插入的顺序。
| 归档时间: |
|
| 查看次数: |
6677 次 |
| 最近记录: |