У меня есть users
модель, которая может содержать несколько notifications
. В NotificationSchema
notifier
содержит идентификатор пользователя и ссылается на модель users
. Когда я выполнить следующий запрос:Mongoose - Ограничить поля по ссылочной модели
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
});
Как может кто-Limit/Ограничить поля, которые должны быть доступны в то время как ссылки на какой-либо модели.
Вот 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
способ сделать это.