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

时间:2019-05-30 05:24:02

标签: angularjs mongoose angularjs-directive mongoose-schema mongoose-populate

我编写了以下mongoose函数,以便在mongodb中创建新文档

createdata: (body) => {
    let sEntry = new SData(Object.assign({}, {
        dataId: body.DataId
    }));
    return sEntry.save();
}

我想修改上面的逻辑,以便它不会插入具有相同dataId的两行

换句话说,如果mongo中已经存在dataId的特定值,则它不应使用相同的dataId创建另一个条目

2 个答案:

答案 0 :(得分:1)

您需要先为此安装此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)
    });
}

答案 1 :(得分:0)

.box { padding: .75rem; background-color: rgba(86,61,124,.15); border: 1px solid rgba(86,61,124,.2); text-align: center; }中的<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <div class="row"> <div class="col box"> apple (always visible) </div> <div class="col box d-none d-md-block"> Orange (visible on md and bigger) </div> <div class="col box d-none d-lg-block"> PineApple (visible on lg and bigger) </div> </div>放入模式中已解决了问题