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

MongoDB:'_id' के बजाय 'id' आउटपुट

यह देखते हुए कि आप Mongoose का उपयोग कर रहे हैं, आप 'वर्चुअल' का उपयोग कर सकते हैं, जो अनिवार्य रूप से Mongoose द्वारा बनाए गए नकली फ़ील्ड हैं। वे डीबी में संग्रहीत नहीं हैं, वे बस रन टाइम पर पॉप्युलेट हो जाते हैं:

// Duplicate the ID field.
Schema.virtual('id').get(function(){
    return this._id.toHexString();
});

// Ensure virtual fields are serialised.
Schema.set('toJSON', {
    virtuals: true
});

इस स्कीमा से आपके द्वारा बनाए गए मॉडल पर किसी भी समय toJSON को कॉल किया जाता है, इसमें एक 'id' फ़ील्ड शामिल होगी जो _id फ़ील्ड Mongo जेनरेट से मेल खाती है। इसी तरह आप उसी तरह toObject के लिए व्यवहार सेट कर सकते हैं।

देखें:

  • http://mongoosejs.com/docs/api.html
  • http://mongoosejs.com/docs/guide.html#toJSON
  • http://mongoosejs.com/docs/guide.html#toObject

आप इसे अपने सभी मॉडलों के बेसशेमा में सारगर्भित कर सकते हैं, फिर तर्क को एक स्थान पर रखने के लिए विस्तार/आह्वान कर सकते हैं। एम्बर/नोड/मोंगोज़ ऐप बनाते समय मैंने उपरोक्त लिखा था, क्योंकि एम्बर वास्तव में काम करने के लिए 'आईडी' फ़ील्ड रखना पसंद करता है।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB के साथ वसंत सत्र

  2. BsonRepresentation(BsonType.ObjectId) बनाम BsonId बनाम ObjectId के साथ C# में किसी संपत्ति को सजाने के बीच अंतर

  3. मैं एक उल्का ऐप में मोंगोडब में दो कॉलम अद्वितीय आईडी कैसे जोड़ सकता हूं?

  4. मोंगिमपोर्ट का उपयोग करके JSON फ़ाइल आयात करना, `अप्रत्याशित पहचानकर्ता` प्राप्त करना जारी रखें?

  5. MongoParseError:विकल्प useCreateIndex, useFindAndModify समर्थित नहीं हैं