【问题标题】:mongodb add item in arraymongodb在数组中添加项目
【发布时间】:2020-04-08 15:00:58
【问题描述】:
            await Cart.update(
              { $elemMatch: { user_id: decoded._id } },
              {
                $addToSet: {
                  "cart.&.items": {
                    product_id: req.query.product_id,
                    quantity: 1,
                  },
                },
              }
            );

我的目标是向购物车中的商品数组添加元素。

【问题讨论】:

  • 请通过将屏幕截图替换为文本(复制和粘贴)来编辑您的问题。链接不仅会消失,还会给视障人士带来问题。

标签: javascript arrays node.js mongodb


【解决方案1】:

& 符号没有语法。 MongoDB 提供$ 作为位置运算符,它允许您修改现有项目,但您不需要,因为您只想将新对象附加到数组,尝试:

{
    $addToSet: {
        "cart.items": {
            product_id: req.query.product_id,
            quantity: 1,
        }
    }
}

【讨论】:

  • 我需要使用elemMatch结构吗? @mickl
  • @Anonim 只使用{ user_id: decoded._id }$elemMatch 用于查询数组
  • 找到但没有添加。为什么不添加:(
  • @Anonim 所以你使用的是$addToSet,但相同的值已经存在?
【解决方案2】:
            Cart.updateMany(
              { user_id: decoded._id },
              {
                $push: {
                  "cart.items": {
                    product_id: req.query.product_id,
                    quantity: 1,
                  },
                },
              }
            )

经过反复试验,我终于找到了正确的方法。

【讨论】:

    猜你喜欢
    • 2019-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-05
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    相关资源
    最近更新 更多