[英]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.