我有一个数据集,它是:
var JobSchema = Schema({
candidates: [{
user: { type: Schema.Types.ObjectId, ref: 'User'},
status: { type: String, default: 'In Progress' },
}]
});
我想找到特定的工作_id
并更新特定候选人的字段,例如{ _id:123,user:12345,status:“In Progress” }
此操作的url为 ---> localhost:3000/apply/:job_id/user_id
例如假设这是当前保存在工作mongodb中的数据
{
"_id" : 123, ---> job_id
"candidates" :
[{
"_id" : 234 ,
"user": 345 , --> user_id
"status" : "In Progress"
},
{
"_id" : 345 ,
"user": 678 , --> user_id
"status" : "In Progress"
}]
"__v" : 0
}
我如何在mongodb中仅更新特定候选人的_id
所属的某个字段,例如status
字段?以下是我的尝试:
如何只更新mongodb中某个特定候选人的一个字段,比如说status
字段,该字段属于某个_id
?这是我的尝试:
Job.update(
{
_id: req.params.job_id,
},
{
$set: {'candidates.$.status': 'Accepted'} ,
}, function(err, count) {
if (err) return next(err);
callback(err, count);
});
如果我使用上述操作,就会出现这个错误。
MongoError:位置操作符未能从查询中找到所需的匹配项。未展开的更新:candidates.$.status