नेवला-अद्वितीय-सत्यापनकर्ता
इस प्लगइन का उपयोग कैसे करें:
1) npm स्थापित - save mongoose-unique-validator
2) अपने स्कीमा में इस गाइड का पालन करें:
var mongoose = require('mongoose');
var uniqueValidator = require('mongoose-unique-validator');
exampleSchema.plugin(uniqueValidator);
3) आम के तरीके
जैसे तरीकों का उपयोग करते समय findOneAndUpdate
आपको इस कॉन्फ़िगरेशन ऑब्जेक्ट को पास करना होगा:
{ runValidators: true, context: 'query' }
ie. User.findOneAndUpdate(
{ email: 'old-email@example.com' },
{ email: 'new-email@example.com' },
{ runValidators: true, context: 'query' },
function(err) {
}
4) अतिरिक्त विकल्प
असंवेदनशील मामला
अपने स्कीमा में uniqueCaseInsensitive विकल्प का उपयोग करें
ie. email: { type: String, index: true, unique: true, required: true, uniqueCaseInsensitive: true }
कस्टम त्रुटि संदेश
ie. exampleSchema.plugin(uniqueValidator, { message: 'Error, expected {PATH} to be unique.' });
अब आप मोंगो को फिर से शुरू करने, डेटाबेस छोड़ने या इंडेक्स बनाने की चिंता किए बिना अपने स्कीमा में अद्वितीय संपत्ति जोड़ / हटा सकते हैं।
कैविट्स (डॉक्स से):
क्योंकि हम डेटाबेस में कोई दस्तावेज़ मौजूद है या नहीं, इसे सत्यापित करने के लिए async ऑपरेशंस पर भरोसा करते हैं। दो प्रश्नों के लिए एक ही समय में निष्पादित करना संभव है, दोनों को 0 वापस मिलता है, और फिर दोनों MongoDB में सम्मिलित होते हैं।
संग्रह को स्वचालित रूप से बंद करना या एकल कनेक्शन को मजबूर करना, कोई वास्तविक समाधान नहीं है।
हमारे अधिकांश उपयोगकर्ताओं के लिए यह एक समस्या नहीं होगी, लेकिन इसके बारे में जागरूक होने के लिए एक किनारे का मामला है।