MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB:wypisz „id” zamiast „_id”

Biorąc pod uwagę, że używasz Mongoose, możesz użyć „wirtualnych”, które są zasadniczo fałszywymi polami tworzonymi przez Mongoose. Nie są przechowywane w bazie danych, po prostu są wypełniane w czasie wykonywania:

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

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

Za każdym razem, gdy toJSON jest wywoływane w modelu utworzonym z tego schematu, będzie on zawierał pole „id”, które odpowiada polu _id generowanemu przez Mongo. Podobnie możesz ustawić zachowanie dla toObject w ten sam sposób.

Zobacz:

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

Możesz streścić to w BaseSchema wszystkie swoje modele, a następnie rozszerzyć/wywołać, aby utrzymać logikę w jednym miejscu. Napisałem powyżej podczas tworzenia aplikacji Ember/Node/Mongoose, ponieważ Ember naprawdę woli mieć pole „id” do pracy.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Automatyczny przyrost mangusty

  2. Zwróć rzeczywisty typ pola w MongoDB

  3. Google Cloud Mongo DB:zewnętrzny adres IP nie łączy się

  4. Zbyt wiele otwartych plików przy jednoczesnym zapewnieniu indeksowania mongo

  5. MongoDB:Znajdź dokument podrzędny w parametrach dopasowania tablicy