MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

MongoDB:keluaran 'id' bukan '_id'

Mengingat Anda menggunakan Mongoose, Anda dapat menggunakan 'virtual', yang pada dasarnya adalah bidang palsu yang dibuat oleh Mongoose. Mereka tidak disimpan dalam DB, mereka hanya diisi pada saat dijalankan:

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

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

Setiap kali toJSON dipanggil pada Model yang Anda buat dari Skema ini, itu akan menyertakan bidang 'id' yang cocok dengan bidang _id yang dihasilkan Mongo. Demikian juga Anda dapat mengatur perilaku untuk toObject dengan cara yang sama.

Lihat:

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

Anda dapat mengabstraksikan ini menjadi BaseSchema semua model Anda kemudian memperluas/memanggil untuk menjaga logika di satu tempat. Saya menulis di atas saat membuat aplikasi Ember/Node/Mongoose, karena Ember lebih suka memiliki bidang 'id' untuk digunakan.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cara menginstal dan mengkonfigurasi MongoDB di Ubuntu

  2. Penggunaan data buffer tahap sortir overflow melebihi batas internal

  3. Praktik Terbaik untuk Keamanan MongoDB

  4. urutkan berdasarkan panjang string di Mongodb/pymongo

  5. Bagaimana cara menentukan Order atau Sort menggunakan driver C# untuk MongoDB?