簡體   English   中英

如何將 object 的嵌套數組作為對象的嵌套數組推送到另一個 object? (MongoDB/NodeJS)

[英]How to push a nested array of object to another object as a nested array of objects? (MongoDB/NodeJS)

我有一個看起來像這樣的“購物車”object:

  {
        "_id" : ObjectId("cart123"),
        "userId" : "user123",
        "email" : "test@mail.com",
        "products" : [ 
            {
                "productId" : "11111",
                "price" : 20,
                "quantity" : 1
            }, 
            {
                "productId" : "22222",
                "price" : 24,
                "quantity" : 1,
            }
        ]
    }

我有一個看起來像這樣的“訂單” object:

{
    "_id" : ObjectId("order123"),
    "userId" : "user123",
    "email" : "test@mail.com",
    "products" : [ ],
    "status" : "pending"
}

我正在嘗試將“產品”數組的內容從“cart123”推送到“order123”。 我嘗試使用此代碼:

const userProduct = await Cart.find({ userId: userData.userId }).select({ 'products': 1,'_id': 0,  });
const updatedOrder = await Order.findOneAndUpdate({ userId: userData.userId  },
{ $push: { "products": {$each: userProduct }}})

但它不起作用。

誰能告訴我應該使用什么代碼?

在玩了 Tom 的代碼和建議之后(謝謝):正確的代碼是:

const userProduct = await Cart.findOne({ userId: userData.userId }).select({ 'products': 1,'_id': 0,  });
const updatedOrder = await Order.findOneAndUpdate({ userId: userData.userId  },
  { $push: { products : {$each: userProduct.products} }}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM