MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB:изведете 'id' вместо '_id'

Като се има предвид, че използвате Mongoose, можете да използвате „виртуални“, които по същество са фалшиви полета, които Mongoose създава. Те не се съхраняват в DB, ​​те просто се попълват по време на изпълнение:

// 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

Можете да абстрахирате това в BaseSchema всичките си модели, след което да разширите/извикате, за да запазите логиката на едно място. Написах горното, докато създавах приложение Ember/Node/Mongoose, тъй като Ember наистина предпочита да има поле „id“, с което да работи.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да създадете конфигурационен файл за MongoDB

  2. Първият MongoDB хостинг DBaaS в подкрепа на Azure Government за публичния сектор

  3. Множество броя с една заявка в mongodb

  4. MongoDB:Намерете поддокумент в параметри за съвпадение на масив

  5. Не мога да получа allowDiskUse:True за работа с pymongo