猫鼬:如何避免插入重复记录?
Mongoose: How to avoid inserting duplicate records?
我编写了以下 mongoose 函数来在 mongodb
中创建新文档
createdata: (body) => {
let sEntry = new SData(Object.assign({}, {
dataId: body.DataId
}));
return sEntry.save();
}
我想修改上面的逻辑,这样它就不会插入两行相同的 dataId
换句话说,如果 dataId
的特定值已经存在于 mongo 中,那么它不应创建另一个具有相同 dataId
的条目
在架构中为 dataId
添加 unique: true
已解决问题
为此,您需要先安装此 mongoose-unique-validator
。然后你可以在
中定义 unique: true
在第二步中,您需要在架构中定义 unique: true
。而且你还必须处理错误响应。
var SData = mongoose.Schema({
dataId: { type: String, index: true, unique: true, required: true },
});
createdata: (body) => {
let sEntry = new SData(Object.assign({}, {
dataId: body.DataId
}));
return sEntry.save(function() {
console.log(error)
});
}
我编写了以下 mongoose 函数来在 mongodb
中创建新文档createdata: (body) => {
let sEntry = new SData(Object.assign({}, {
dataId: body.DataId
}));
return sEntry.save();
}
我想修改上面的逻辑,这样它就不会插入两行相同的 dataId
换句话说,如果 dataId
的特定值已经存在于 mongo 中,那么它不应创建另一个具有相同 dataId
在架构中为 dataId
添加 unique: true
已解决问题
为此,您需要先安装此 mongoose-unique-validator
。然后你可以在
unique: true
在第二步中,您需要在架构中定义 unique: true
。而且你还必须处理错误响应。
var SData = mongoose.Schema({
dataId: { type: String, index: true, unique: true, required: true },
});
createdata: (body) => {
let sEntry = new SData(Object.assign({}, {
dataId: body.DataId
}));
return sEntry.save(function() {
console.log(error)
});
}