在javascript中加入对象名称中的字符串

时间:2017-06-18 22:26:27

标签: javascript node.js express mongoose

我需要在mongoose中的 for 循环中加入对象名称中的两个字符串,例如:

for(var i = 0; i < 2; i++)
{
    EnrollSessions.update({ CookieId: req.cookies.UserEnrollSession },
    {$set: {"Files.File"+i+".RealName": file.originalname},
function (err,data) {
                    console.log(data);
                });
}   

因此我需要更新Files.File1.Realname,Files.File2.Realname的值。

有可能吗? 提前谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

在您的示例中,for循环以i值0和1运行,这将重命名File0和File1。

您可以使用"Files.File"+ (i + 1) +".RealName"

更好的方法是在for循环中创建更新对象,然后将其发送到mongo。

let obj = {

};

for(var i = 0; i < 2; i++)
{
    let name = "Files.File" + (i + 1) + ".RealName";
    obj[name] = file.originalname;
}   

    EnrollSessions.update({ CookieId: req.cookies.UserEnrollSession },
    {$set: obj},
function (err,data) {
                    console.log(data);
                });

或者,如果只有2个文件,您可以在同一个更新对象中手动硬编码,而不是for循环。