首页 > 解决方案 > MONGOOSE, "$" 运算符没有按预期工作 // elemMatch

问题描述

这是命令

const filter = {
    searchWord: req.body.searchWord,
    result: { $elemMatch: { idMeal: req.body.mealData.idMeal } },
};

const update = { $set: { 'result.$.strMeal': req.body.mealData.strMeal } };

const returnData = { returnOriginal: false };

Meal.findOneAndUpdate(
    filter,
    update,
    returnData,
    function (err, foundMeal) {
        res.json(foundMeal.result);
    }
);

如果我使用 $ 运算符,它不会更新相应的字段,而是更新第二个字段,所以它就像我输入的一样工作

'result.1.strMeal'

代替

'结果.$.strMeal'

这是猫鼬问题还是由什么引起的?

标签: node.jsmongoosefindoneandupdate

解决方案


推荐阅读