MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

संपत्ति मौजूद होने पर नेवला मॉडल की hasOwnProperty झूठी वापसी क्यों करती है?

ऐसा इसलिए है क्योंकि जिस दस्तावेज़ वस्तु को आप नेवला से वापस प्राप्त करते हैं, वह सीधे गुणों तक नहीं पहुँचती है। यह प्रोटोटाइप श्रृंखला का उपयोग करता है इसलिए hasOwnProperty झूठी वापसी (मैं इसे बहुत सरल कर रहा हूं)।

आप दो चीजों में से एक कर सकते हैं:toObject() use का उपयोग करें इसे एक सादे वस्तु में बदलने के लिए और फिर आपके चेक इस प्रकार काम करेंगे:

var userPOJO = User.toObject();
if ( !(userPOJO.hasOwnProperty('local') && userPOJO.local.hasOwnProperty('password')) ) {...}

या आप सीधे मूल्यों की जांच कर सकते हैं:

if ( !(User.local && User.local.password) ) {...}

चूंकि दोनों में से किसी भी संपत्ति का गलत मूल्य नहीं हो सकता है, इसलिए इसे परीक्षण के लिए काम करना चाहिए यदि वे आबाद हैं।

संपादित करें:एक और चेक जिसका मैं उल्लेख करना भूल गया था, वह है मोंगोज़ के बिल्ट इन get . का उपयोग करना विधि:

if (!User.get('local.password')) {...}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Node.js में एक तुल्यकालिक MongoDB क्वेरी बनाने का सही तरीका क्या है?

  2. EVE का उपयोग करके REST API का निर्माण

  3. PyMongo का उपयोग करके mongodb में एक पांडा डेटाफ़्रेम सम्मिलित करें

  4. कैसे खोज विधि से नेवला परिणाम वापस करने के लिए?

  5. फ्लास्क उपयोगकर्ता प्रमाणीकरण