多层查找和更新mongodb和nodejs

多层查找和更新mongodb和nodejs,mongodb,mongoose,node-mongodb-native,Mongodb,Mongoose,Node Mongodb Native,学习MongoDB,所以我希望这不是一个重复的问题 这么大的图景。用户可以从购物车(一个数组)中添加/删除项目 购物车数组包含如下结构的对象:{u id:123r32,qty:2} 用户文档的结构如下所示: _id: 123432423, username: johndoe, email: johndoe@mail.com, cart: [ { _id: wefw3423, qty: 100 } ] 因此,添加到阵列中是很好的: db.users.updateOne({

学习MongoDB,所以我希望这不是一个重复的问题

这么大的图景。用户可以从购物车(一个数组)中添加/删除项目

购物车数组包含如下结构的对象:{u id:123r32,qty:2}

用户文档的结构如下所示:

_id: 123432423,
username: johndoe,
email: johndoe@mail.com,
cart: [
  {
    _id: wefw3423,
    qty: 100
  }
]
因此,添加到阵列中是很好的:

db.users.updateOne({_id: req.user.id}, {$push: {cart: {_id: req.body.id, qty: req.body.qty}}})
但当我按下按钮时,我不想添加重复项。我只想相应地调整数量(加/减)。如果不存在该_id的实例,则推送

感谢您的阅读和帮助!如果您需要更多信息,请询问我将提供的信息

编辑:


补充资料。请求正文(req.body)将只包含一项。因此,这里不需要updateMany

请告诉我您想要一个查询来解决这个问题???因为我在mongo的经验几乎为零,请提供您最好的解决方案。谢谢,首先我们要检查文件中的购物车id和pull以及push之后的购物车数据