我想更新数组对象的字段。
我想为经验[0]更新_idWorksInRestaurant
字段。
这是我的json对象:
{
"_id" : NumberInt(0),
"_idUserProfile" : NumberInt(1),
"experience" : [
{
"fromDate" : "06/2017",
"zip" : "95014",
"restaurantType" : "Family Style",
"_idWorksInRestaurant" : "8020",
},
{
"fromDate" : "11/2017",
"restaurantType" : "Ethnic",
"_idWorksInRestaurant" : "-1",
}],
"__v" : NumberInt(0)
这是我的代码:在bari变量中,我传递索引号
var t = "experience." + bari + ".$._idWorksInRestaurant";
var z = "experience."+bari+"._idWorksInRestaurant";
ModelBarTender.findOneAndUpdate({ _idUserProfile: user._id, z: req.body.experience[bari]._idWorksInRestaurant },
{
$set: { t: restoid },
$new: true, upsert: true
},
function (err, bartender) {
if (!err) {
bari++;
bartenderexp(exp, req, imageURL, i9form, bari, callback);
}
}
);
答案 0 :(得分:0)
var updateObj = {$set:{}};
updateObj.$set["experience." + bari + "._idWorksInRestaurant"] = restoid;
ModelBarTender.findOneAndUpdate({
_idUserProfile: user._id
}, updateObj, {
new: true, upsert: false
}, function (err, bartender) {
if (!err) {
bari++;
bartenderexp(exp, req, imageURL, i9form, bari, callback);
}
});