我的users
模型可以容纳多个notifications
。在NotificationSchema
中,notifier
保留用户ID,并引用users
模型。当我执行以下查询时:
User.find().populate('notifications.notifier').exec(function(err,users){
//users[0].notifications[0].notifier
//I am getting all fields from the referenced user
//I don't want the whole document but some fields only
});
如何限制/限制引用某些模型时应该可用的字段。
以下是users
型号
var NotificationSchema =new Schema({
notifier : {type:Schema.Types.ObjectId, ref:'users'},
//How could I say :
//notifier : {type:Schema.Types.ObjectId, ref:'users', fields:['_id', 'name']}
//because I know what fields do I need from referenced model for this Schema.
__SOME__
__OTHER__
__FIELDS__
});
var UsersSchema = new Schema({
name : {given:String, middle:String, family:String}
email:String,
password:String,
notifications : [NotificationSchema]
});
var Users = mongoose.model('users', UsersSchema);
顺便说一句,model
我没有单独的NotificationSchema
。
如果此功能无法使用,我该如何手动实现它。我错过了一些文档吗?请让我知道robust
这样做的方式。
答案 0 :(得分:0)
我在mongoose docs
中找到了它 的字段选择部分找到了答案User.find().populate('notifications.notifier', '_id name').exec(function(err, users) {
//users[0].notifications[0].notifier ^^^^^^^^^ HOW FUNNY
//Yes I am getting '_id' and 'name' fileds only
});