查询:
db.getCollection('parents').insertMany(
[{
'name': 'Mark',
'children': 'No Childs'
},{
'name': 'Carl',
'children': '2'
}], {
'ordered': true,
}
)
我使用猫鼬作为ORM
有人可以建议我们是否有诸如unique:true这样的选项吗? 我希望检查的内容不是_id,因为它永远不会重复
注意:我尝试使用upsert:true尝试findOneAndUpdate,但是在这里我必须同时插入多个文档
答案 0 :(得分:0)
根据文档,如果您在字段上具有唯一索引(在您的情况下为name
),而您尝试使用insertMany插入多个文档,则在发生错误时会出现异常:
为唯一键的任何键插入重复值 索引,例如_id,会引发异常。
但是,如果您设置'ordered': false
,insertMany的执行不会停止,并且您将插入与<{1}}索引不冲突的那些文档:
如果命令设置为false,则插入操作将继续执行 剩余的文件。
因此,在unique
和only those records which violate that index would be skipped上,在name
字段上设置唯一索引。
答案 1 :(得分:0)
在定义模型架构时,您可以指定哪个字段是唯一的,例如:
var userSchema = new mongoose.Schema(
{
FieldName:{
type: String,
unique:true
}
})
var UserModel = mongoose.Model('User',userSchema);
如果您只想添加索引,则有
schema.index({FieldName1: 1, FieldName2: 1}, {unique: true});