请帮我。我有这样的问题。我有我的查询:
$inc: {
quantity: -qty,
saled: qty,
'colors.2.quantity' : -qty,
'size.1.quantity' : -qty
},
上面的查询工作正常。但是如果我通过Node.js渲染更新颜色和大小的路径:
let colorPath = `colors.${index}.quantity`;
let sizePath = `size.${index}.quantity`;
然后像这样查询:
$inc: {
quantity: -qty,
saled: qty,
colorPath : -qty,
sizePath : -qty
},
它不起作用。颜色或尺寸数组中项目的索引不固定。所以,我需要像上面那样通过。我该怎么办,请帮帮我...谢谢您的时间:'(
最佳答案
更改
$inc: {
quantity: -qty,
saled: qty,
colorPath : -qty,
sizePath : -qty
},
与
$inc: {
quantity: -qty,
saled: qty,
[colorPath] : -qty,
[sizePath] : -qty
},
在编写
colorPath
时,它将被解释为字符串。使用符号[]
将告诉解释器您正在使用变量。请参见here有关动态密钥的其他堆栈溢出文章。
关于javascript - Node.js和Mongoose渲染$ inc查询的路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50216925/