【发布时间】:2017-04-10 11:07:27
【问题描述】:
我正在尝试填充一个猫鼬模型,我只希望返回的项目是与 ID 匹配的项目。
编辑更新:在下面的用户模型中,我需要首先通过 id 找到正确的用户,然后对于 task 属性,我需要在 projectID 匹配 req.params.ID 的位置填充它。我怎样才能只填充projectID 与req.params.ID 匹配的任务。我已经包含了我的完整用户模型以及任务模型
//用户架构
var UserSchema = new Schema({
name: {
type: String,
trim: true,
required: "First Name is Required"
},
username: {
type: String,
trim: true,
required: "Username is Required"
},
skills: {
type: String,
trim : true
},
avatar: {
type: String
},
SQLid: {
type: Number
},
userCreated: {
type: Date,
default: Date.now
},
lastUpdated: {
type: Date
},
adminTeams: [{
type: Schema.Types.ObjectId,
ref: "Team"
}],
team: [{
type: Schema.Types.ObjectId,
ref: "Team"
}],
task: [{
projectID: {
type: String
},
theTask: {
type: Schema.Types.ObjectId,
ref: "Task"
}
}]
});
//任务架构
var TodoSchema = new Schema({
task: {
type: String
}
});
我如何才能仅在 projectID 等于特定 ID 的情况下填充 task。我试过了
User.findById({ "_id": req.params.id }).populate({ path: 'task', match: {projectID: req.params.pID}, select: 'theTask' })
.exec(function(err, docs){
console.log("POPULATE TASKS DOCS", docs)
但这表明文档是空的。
【问题讨论】: