嗨我有这个字段的三个模式
var interactionSchema = new Schema({
pollee: { type: ObjectId, ref: 'Pollee' },
answers: { type: [ObjectId], ref: 'Answer', autopopulate: true },
status: type: String
});
var PolleeSchema = new Schema({
firstName: String,
lastName: String,
gender: String,
user: { type: ObjectId, ref: 'User', required: true },
interactions: { type: [ObjectId], ref: 'Interaction', autopopulate: true }
});
var userSchema = new Schema({
email: String,
pollee: { type: Schema.Types.ObjectId, ref: 'Pollee', autopopulate: true }
});
我需要在Pollee中实现查询并从用户和交互中瞳孔化,但是从交互中我只需要状态字段,我不需要答案和包含交互集合的其他ObjectID数组。
我做了这个查询
Pollee.find(req.body.filters)
.select('id age birthday country device_register gender municipality state parish user interactions.status')
.populate('user','email createdAt')
.exec(function(err,pollees){
//Other
}
//....
此返回交互数组但不返回状态字段。如果我只在select上编写交互,则返回与交互中所有字段的交互。
我试试这个
Pollee.find(req.body.filters)
.select('id age birthday country device_register gender municipality state parish user')
.populate('user','email createdAt')
.populate('interactions', 'status')
.exec(function(err,pollees){
//Other
}
//....
这不会从交互中返回
我只需要来自互动的状态字段。
这里的问题是来自Pollee Schema的交互字段,这个字段是一个ObjectsId数组,这个字段是从Schema自动填充的。我想只从交互中选择状态字段
有什么想法吗?
答案 0 :(得分:0)
我发现您使用的是mongoose-autopopulate。
他们的文件中说明你可以做this:
var PolleeSchema = new Schema({
//...
interactions: { type: [ObjectId], ref: 'Interaction', autopopulate: { select: 'status' } }
});