簡體   English   中英

無法在MongoDB中為子字段添加表達式

[英]can't add an expression for a subfield in MongoDB

這是我的代碼。

   Cart
        .aggregate()
        .match(where)
        .lookup({
            from: "product_catelogs",
            foreignField: "_id",
            localField: "product_id",
            as: "product"
        })
        .project({
          product: {
            $arrayElemAt: ["$product", 0]
          },
          "product.custom_field": {
            $add: [1, 1]
          },
          product_quantity: 1,
          product_variant: 1,
          guest_token: 1,
          user_id: 1,
          product_id: 1,
        })

在此,我想添加一個帶有產品對象的自定義字段。 但是當我嘗試這樣做時,我面臨着這種錯誤,

無法為產品的子字段添加表達式,因為已經有一個表達式適用於整個字段

請幫幫我。

恐怕唯一可行的方法是添加另一個項目管道,該管道具有對product嵌入字段以及新字段的單獨預測。 下面是一個示例:

Cart.aggregate()
    .match(where)
    .lookup({
        "from": "product_catelogs",
        "foreignField": "_id",
        "localField": "product_id",
        "as": "product"
    })
    .project({
        "product": { "$arrayElemAt": ["$product", 0] },
        "product_quantity": 1,
        "product_variant": 1,
        "guest_token": 1,
        "user_id": 1,
        "product_id": 1,
    })
    .project({
        "product.field1": "$product.field1", // <-- change to suit your actual schema
        "product.field2": "$product.field2",
        "product.field3": "$product.field3",
        "product.field4": "$product.field4",
        "product.custom_field": { "$add": ["$product.field4", "$product.field5"] },
        "product_quantity": 1,
        "product_variant": 1,
        "guest_token": 1,
        "user_id": 1,
        "product_id": 1,
    })

暫無
暫無

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

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