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

Mongoose:làm thế nào để đặt một trường lược đồ làm ID?

Vì bạn đang sử dụng Mongoose, một tùy chọn là sử dụng chuỗi email làm _id rồi thêm trường trường ảo có tên email trả về _id để xóa mã sử dụng email.

var userSchema = new Schema({
    _id: {type: String},
    passwordHash: {type: String},
    roles: {type: [String]}
});

userSchema.virtual('email').get(function() {
    return this._id;
});

var User = mongoose.model('User', userSchema);

User.findOne(function(err, doc) {
    console.log(doc.email);
});

Lưu ý rằng trường ảo không được bao gồm theo mặc định khi chuyển đổi tài liệu Mongoose thành đối tượng JS thuần túy hoặc chuỗi JSON. Để bao gồm nó, bạn phải đặt virtuals: true trong tùy chọn toObject() hoặc toJSON() gọi:

var obj = doc.toObject({ virtuals: true });
var json = doc.toJSON({ virtuals: true });



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. java mongo db biểu thức chính quy ký tự không phải chữ cái

  2. Làm cách nào để lấy dữ liệu từ mảng trong mongoose?

  3. Sao chép / sao chép bộ sưu tập trong MongoDB

  4. Làm thế nào để điền một tài liệu con trong mongoose sau khi tạo nó?

  5. Có thể mongodump các bản ghi x cuối cùng từ một bộ sưu tập không?