收藏
回答

云函数中如何对集合中的数据中的对象进行更新操作?

假设我的集合中数据如下

"_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是会变的。我在测试中放变量拼接会报错。

请求大神赐教~~

回答关注问题邀请回答
收藏

1 个回答

  • 老张
    老张
    2020-03-29
    db.collection('product').where({
    _id:'abc',
    "sku.stock":10
    }).update({
    data:{
    "sku.$.stock":_.inc(-1)
    }
    })
    

    这个where的结果你需要调试一下,但是语法基本是这样了。

    2020-03-29
    有用 2
    回复 1
    • 预感
      预感
      2020-03-29
      多谢,老张,老张出马一个顶两~~~
      2020-03-29
      回复
登录 后发表内容
问题标签