firavun faresi-benzersiz-doğrulayıcı
Bu eklenti nasıl kullanılır:
1) npm yüklemesi - mongoose-benzersiz-doğrulayıcıyı kaydedin
2) şemanızda bu kılavuzu izleyin:
var mongoose = require('mongoose');
var uniqueValidator = require('mongoose-unique-validator');
exampleSchema.plugin(uniqueValidator);
3) firavun faresi yöntemleri
findOneAndUpdate
Sizin gibi yöntemleri kullanırken bu yapılandırma nesnesini iletmeniz gerekecektir:
{ runValidators: true, context: 'query' }
ie. User.findOneAndUpdate(
{ email: 'old-email@example.com' },
{ email: 'new-email@example.com' },
{ runValidators: true, context: 'query' },
function(err) {
}
4) ek seçenekler
büyük / küçük harfe duyarlı değil
şemanızda uniqueCaseInsensitive seçeneğini kullanın
ie. email: { type: String, index: true, unique: true, required: true, uniqueCaseInsensitive: true }
özel hata mesajları
ie. exampleSchema.plugin(uniqueValidator, { message: 'Error, expected {PATH} to be unique.' });
Artık, mongo'yu yeniden başlatma, veritabanlarını bırakma veya dizin oluşturma konusunda endişelenmeden şemalarınıza benzersiz özelliği ekleyebilir / silebilirsiniz.
Uyarılar (dokümanlardan):
Veritabanında bir belgenin var olup olmadığını doğrulamak için zaman uyumsuz işlemlere güvendiğimizden, aynı anda iki sorgunun yürütülmesi mümkündür, her ikisi de 0'ı geri alır ve ardından her ikisi de MongoDB'ye eklenir.
Koleksiyonu otomatik olarak kilitlemenin veya tek bir bağlantıyı zorlamanın dışında gerçek bir çözüm yoktur.
Kullanıcılarımızın çoğu için bu bir sorun olmayacak, ancak dikkat edilmesi gereken bir uç durumdur.