假设我的集合中数据如下
"_id":"abc",
"sku":[{"name":"白色+长款","price":126,"stock":10},{"name":"黑色+长款","price":126,"stock":10},{"name":"红色色+长款","price":126,"stock":10},{"name":"白色+短款","price":126,"stock":10},{"name":"白色+短款","price":126,"stock":10}]
....其它字段忽略
现在要操作减sku中的其中的一条的stock数量,
已知_id是abc
db.collection('product').where({
_id:'abc'
}).update({
data:{
"sku.1.stock":_.inc(-1)
}
})
看手册中可以"sku.1.stock":_.inc(-1)
但这个.1是会变的。我在测试中放变量拼接会报错。
请求大神赐教~~
db.collection('product').where({ _id:'abc', "sku.stock":10 }).update({ data:{ "sku.$.stock":_.inc(-1) } })
这个where的结果你需要调试一下,但是语法基本是这样了。