2015-04-29 27 views
5

Đối với dự án của tôi đã tạo một userSchema mà đơn giản trông giống như sau:mongoose giá trị mặc định bằng giá trị khác

var userSchema = new Schema({ 
    _id: String, 
    screenname: {type: String, required: false, default: "equal _id"}, 
}); 

Người sử dụng có một _id đó là một chuỗi mà cũng là tên người dùng của mình. Mọi thứ hoạt động cho đến khi tôi cố thêm một tên màn hình trường bổ sung. Những gì tôi muốn là khi người dùng tạo một tài khoản, tên hiển thị của anh ấy bằng với giá trị của _id. Sau đó anh ta có thể điều chỉnh nó nhưng theo mặc định nó phải bằng giá trị của _id. Tôi cũng đã thử:

screenname: {type: String, required: false, default: _id}, 

Nhưng hơn ofcourse _id không được xác định.

Tôi nên đặt giá trị mặc định bằng một giá trị khác như thế nào?

Trả lời

7

sử dụng pre middleware giải thích here

userSchema.pre('save', function (next) { 
    this.screenname = this.get('_id'); // considering _id is input by client 
    next(); 
}); 
Các vấn đề liên quan