具有动态字段名称的Mongoose Model.update

use*_*521 2 javascript mongoose mongodb node.js

我试图将字段名称作为变量传递,这是我尝试但它不起作用:

var update={};
update[req.body.field]=req.body.value;
Model.update(
    {"email":req.user.email},
    {$set:{update}},
    function (err,success) {
        if(err) return handleError(err);
    }
)
Run Code Online (Sandbox Code Playgroud)

req.body.field包含Model模式中定义的字段的名称,req.body.value是我想要更新的值

Aru*_*osh 6

您不需要更新为大括号,因为它已经是一个对象.尝试:

var update={};
update[req.body.field]=req.body.value;
Model.update(
    {"email":req.user.email},
    {$set:update},
    function (err,success) {
        if(err) return handleError(err);
    }
)
Run Code Online (Sandbox Code Playgroud)