Với sơ đồ sau:Mongoose: cách đặt trường lược đồ là ID?
var UserSchema = new Schema({
, email : { type: String }
, passwordHash : { type: String }
, roles : { type: [String] }
});
Tôi muốn email
là chìa khóa. Tôi làm cách nào để xác định điều này?
tôi có thể làm:
var UserSchema = new Schema({
, _id: { type: String }
, passwordHash : { type: String }
, roles : { type: [String] }
});
nên MongoDB sẽ nhận ra nó như là id-lĩnh vực, và thích ứng với mã của tôi để tham khảo _id
thay vì email
nhưng điều đó không cảm thấy sạch sẽ cho tôi.
Bất kỳ ai?
Tôi nghĩ bạn nên rời khỏi _id như một ObjectId và làm email một chỉ số duy nhất. – JohnnyHK
Đó có phải là sự đồng thuận chung không? Có tên miền-id là duy nhất và để MongoDB quản lý các Id kỹ thuật? –
Vì bạn đang sử dụng Mongoose, một tùy chọn khác sẽ là sử dụng chuỗi email làm trường _id và sau đó thêm [trường ảo] (http://mongoosejs.com/docs/virtuals.html) có tên là "email" được trả về _id để dọn sạch mã sử dụng email. – JohnnyHK