MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

MongoDB:xuất 'id' thay vì '_id'

Vì bạn đang sử dụng Mongoose, bạn có thể sử dụng 'ảo', về cơ bản là các trường giả mà Mongoose tạo ra. Chúng không được lưu trữ trong DB, chúng chỉ được điền vào lúc chạy:

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

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

Bất kỳ lúc nào toJSON được gọi trên Mô hình bạn tạo từ Lược đồ này, nó sẽ bao gồm trường 'id' khớp với trường _id mà Mongo tạo. Tương tự như vậy, bạn có thể đặt hành vi cho toObject theo cách tương tự.

Xem:

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

Bạn có thể trừu tượng hóa điều này thành một BaseSchema tất cả các mô hình của bạn sau đó mở rộng / gọi ra để giữ logic ở một nơi. Tôi đã viết phần trên trong khi tạo ứng dụng Ember / Node / Mongoose, vì Ember thực sự thích có trường 'id' để làm việc.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tích hợp ClusterControl với SNMP - Bằng chứng về khái niệm:Phần thứ nhất

  2. Sử dụng trình tạo Active Record sau khi cài đặt Mongoid?

  3. Tìm kiếm Cụm từ Thông dụng MongoDB - Bắt đầu với việc sử dụng trình điều khiển javascript và NodeJS

  4. Làm thế nào để kiểm tra nâng cấp ứng dụng MongoDB của bạn?

  5. Nối các giá trị chuỗi trong mảng trong một trường duy nhất trong MongoDB