请帮我。我有这样的问题。我有我的查询:

$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/

10-12 07:26