Mongoose: Как избежать вставки дублирующих записей? - PullRequest
0 голосов
/ 30 мая 2019

Я написал следующую функцию mongoose для создания нового документа в mongodb

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

Я хочу изменить приведенную выше логику, чтобы она не вставляла две строки с одинаковыми dataId

Другими словами, если конкретное значение dataId уже существует в Монго, то оно не должно создавать другую запись с таким же dataId

Ответы [ 2 ]

1 голос
/ 30 мая 2019

Для этого вам необходимо сначала установить 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)
    });
}
0 голосов
/ 30 мая 2019

помещение unique: true для dataId в схему решило проблему

...