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

नेवला:वस्तु के लिए कास्ट मूल्य के लिए विफल रहा

आपके द्वारा संदर्भित नेवला डॉक्स का उदाहरण Number . का उपयोग करता है personSchema._id . के लिए फ़ील्ड, और ObjectId दूसरों के लिए।

मुझे लगता है कि वे इसे उदाहरण में केवल यह दिखाने के लिए करते हैं कि इसका उपयोग करना संभव है। यदि आप _id निर्दिष्ट नहीं करते हैं स्कीमा में, ObjectId डिफ़ॉल्ट होगा।

यहां, आपके सभी रिकॉर्ड में एक _id है फ़ील्ड जो एक ObjectId है , फिर भी आप उनके साथ संख्याओं की तरह व्यवहार कर रहे हैं। इसके अलावा, personID . जैसे फ़ील्ड और taskID मौजूद नहीं है, जब तक कि आप उस हिस्से को नहीं छोड़ते जहां आप उन्हें परिभाषित करते हैं।

यदि आप अपने सभी _id . के लिए संख्याओं का उपयोग करना चाहते हैं फ़ील्ड, आपको इसे स्कीमा में परिभाषित करना होगा।

var newsSchema = new Schema({
  _id: Number,
  _creator: {type: ObjectId, ref: "Person"},
  // ...
})

var personSchema = new Schema({
  _id: Number,
  // ...
})

फिर एक विशेष आईडी के साथ एक समाचार आइटम बनाने के लिए, और इसे एक निर्माता को असाइन करें:

var tony = new Person({_id: 0});
var newsItem = new NewsItem({_id: 0, creator: tony.id});

हालाँकि यहाँ ध्यान देने वाली बात यह है कि जब आप ObjectId . के अलावा किसी और चीज़ का उपयोग करते हैं _id . के रूप में क्षेत्र, आप स्वयं इन मूल्यों के प्रबंधन की जिम्मेदारी ले रहे हैं। ObjectIds स्वतः उत्पन्न होते हैं और उन्हें किसी अतिरिक्त प्रबंधन की आवश्यकता नहीं होती है।

संपादित करें:मैंने यह भी देखा है कि आप अपने संघों के दोनों किनारों पर रेफरी जमा कर रहे हैं। यह पूरी तरह से मान्य है और आप इसे कभी-कभी करना चाह सकते हैं, लेकिन ध्यान दें कि आपको संदर्भों को pre में स्वयं संग्रहीत करने का ध्यान रखना होगा हुक।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. किसी अन्य डॉकटर कंटेनर से मोंगोडब डॉकटर कंटेनर से कनेक्ट करना

  2. मोंगोडब का उपयोग करके मोंगोडब में दो दिन शामिल करने के बीच मोंगोडब से डेटा कैसे प्राप्त करें

  3. अजगर के माध्यम से उपयोगकर्ता को मोंगोडब में जोड़ें

  4. MeteorJS में MongoDB एग्रीगेट और ग्रुपिंग इश्यू

  5. मोंगोडब का उपयोग करके किसी इकाई में स्थान को कैसे परिभाषित करें?