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

नेवला संदर्भ संपत्ति द्वारा एक दस्तावेज़ खोजें

आपके couple . में मॉडल, person1 एक ऑब्जेक्ट आईडी है (मुझे पता है कि आप इसे जानते हैं), इसलिए इसमें स्पष्ट रूप से कोई संपत्ति नहीं है .firstname

वास्तव में इसे प्राप्त करने का सबसे अच्छा तरीका है, उपयोगकर्ता को उसके पहले नाम से ढूंढना, और फिर जोड़े को id के साथ क्वेरी करना है। उपयोगकर्ता का।

यह विधि couple में खड़ी हो सकती है/होनी चाहिए एक स्थिर विधि के रूप में मॉडल (सरलीकृत कोड नमूना):

couple.statics.findByPersonFirstname = function (firstname, callback) {
  var query = this.findOne()
 
  Person.findOne({firstname: firstname}, function (error, person) {
    query.where($or: [
      {person1: person._id},
      {person1: person._id}
    ]).exec(callback);
  })

  return query
}

बस इस उदाहरण को पसंद करें

संपादित करें:यह भी ध्यान दें कि रेफरी _id . होना चाहिए (इसलिए आप पहले नाम से स्टोर नहीं कर सकते, वैसे भी यह एक बुरा विचार होगा)।

आपके संपादन को ध्यान में रखते हुए:

Person._id शायद एक String है और संदर्भ एक ObjectId है , अगर ऐसा है, तो कोशिश करें:

{person1: mongoose.Types.ObjectId(Person._id)}

साथ ही, आपका वैरिएबल person है और नहीं person . लॉग करने का प्रयास करें person यह देखने के लिए कि क्या आपको कुछ मिलता है।

अंत में, मेरा कोड नमूना वास्तव में सरल है, त्रुटियों और सभी को संभालना न भूलें (ऊपर दिए गए लिंक को देखें, जो पूरा हो गया है)।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. जब मैं दस्तावेज़ जोड़ता हूं तो क्या मोंगोडीबी कर्सर स्वतः बढ़ता है?

  2. मॉर्फिया सूची <मानचित्र <स्ट्रिंग, ऑब्जेक्ट>>> वापसी एंबेडेड तत्व खोज ऑपरेशन पर DBObject नहीं है

  3. अनटर्मिनेटेड कमांड के लिए मोंगो शेल आउटपुट (तीन डॉट) कैसे प्राप्त करें

  4. 'नेवला' उन दस्तावेज़ों को जोड़ने का काम कैसे करता है जिनमें FIELDS हैं जो स्कीमा के __NOT__ भाग हैं?

  5. सिद्धांत और MongoDB के साथ भंडारण सरणी