gpt4 book ai didi

node.js - 如何避免在 MongoDB 中使用 db.insertMany() 在集合中插入重复值?

转载 作者:行者123 更新时间:2023-12-05 09:15:18 24 4
gpt4 key购买 nike

查询:

db.getCollection('parents').insertMany(
[{
'name': 'Mark',
'children': 'No Childs'
},{
'name': 'Carl',
'children': '2'
}], {
'ordered': true,
}
)

我正在使用 Mongoose 作为 ORM

有人可以建议我们是否有类似 unique: true 的选项吗?我希望检查内容而不是 _id,因为它永远不会重复

注意:我试过使用 upsert: true 的 findOneAndUpdate,但这里我必须同时插入多个文档

最佳答案

根据文档,如果您在某个字段上有一个唯一索引(在您的情况下为 name)并且您正尝试使用 insertMany 插入多个文档发生错误时你会得到一个异常:

Inserting a duplicate value for any key that is part of a unique index, such as _id, throws an exception.

但是,如果您设置 'ordered': false,insertMany 的执行将不会停止,您将拥有那些unique 冲突的文档 索引插入:

With ordered to false, the insert operation would continue with any remaining documents.

所以在 name 字段上设置一个唯一索引,当你执行 insertMany only those records which violate that index would be skipped .

关于node.js - 如何避免在 MongoDB 中使用 db.insertMany() 在集合中插入重复值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52697153/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com