我需要在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的值。
有可能吗? 提前谢谢你的帮助。
答案 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循环。