Javascript mongodb在数组中添加项

Javascript mongodb在数组中添加项,javascript,arrays,node.js,mongodb,Javascript,Arrays,Node.js,Mongodb,我的目标是将元素添加到购物车中的项目数组。没有带&符号的语法。MongoDB提供了$作为位置运算符,允许您修改现有项,但您不需要,因为您只想将新对象附加到数组中,请尝试: await Cart.update( { $elemMatch: { user_id: decoded._id } }, { $addToSet: { "cart.&.it


我的目标是将元素添加到购物车中的项目数组。

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

            await Cart.update(
              { $elemMatch: { user_id: decoded._id } },
              {
                $addToSet: {
                  "cart.&.items": {
                    product_id: req.query.product_id,
                    quantity: 1,
                  },
                },
              }
            );

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

请用文本(复制和粘贴)替换屏幕截图来编辑您的问题。链接不仅会消亡,还会给视障人士带来问题。我需要使用elemMatch结构吗@mickl@Anonim只需使用
{user\u id:decoded.\u id}
$elemMatch
用于查询arrayIt查找到的阵列,但没有添加。为什么不添加:(语法看起来正确@Anonim,所以您使用的是
$addToSet
,但相同的值已经存在了?
{
    $addToSet: {
        "cart.items": {
            product_id: req.query.product_id,
            quantity: 1,
        }
    }
}
            Cart.updateMany(
              { user_id: decoded._id },
              {
                $push: {
                  "cart.items": {
                    product_id: req.query.product_id,
                    quantity: 1,
                  },
                },
              }
            )