У меня есть следующая схемаMongoDB Дублировать запись
var customerSchema = new Schema({
customerID: String,
phoneNumber: String
})
customerSchema.path('customerID').validate(function (customerID, next) {
Customer.findOne({customerID: customerID}, function (err, user) {
if (err) {
return next(false);
}
if (!user) {
return next(true); //Valid
} else {
return next(false);
}
});
}, 'customerID Already Exists');
Это прекрасно работает, когда я пытаюсь добавить тот же CUSTOMERID. Это не позволит мне. Но ранее я попытался нажать кнопку ADD на раз на другой компьютер. Так или иначе добавляется тот же самый идентификатор клиента.
Как предотвратить появление таких случаев краев? Я использую MongoLab. Есть ли проблема с задержкой?
Спасибо! Кроме того, похоже, что «эти ограничения не позволяют приложениям вставлять документы, которые имеют повторяющиеся значения для вставленных полей». Что мне нужно сделать для «обновления»? Предположим, я хочу обновить идентификатор клиента. Как я могу предотвратить его обновление до того же идентификатора клиента. Должен ли я вручную найтиОн и проверить перед обновлением? – Zanko
Кроме того, в чем смысл проверки? Если мы сможем использовать уникальный индекс? Это тип поведения, который вы указали, произошел, как база данных вернет сообщение? – Zanko
Вы можете проверить другие типы правил, например, имя соответствует определенному шаблону. База данных вернет исключение, связанное с ограничениями, но вы можете обработать это и вернуть любое сообщение, которое вы хотите. –