猫鼬:如何避免插入重复记录?

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)
    });
}