目前我有這個模式。數據庫記錄的Mongoose中的子文檔總數
var cartSchema = new Schema({
userPurchased: {type: Schema.Types.ObjectId, ref: 'users'},
products: [
{
product: {type: Schema.Types.ObjectId, ref: 'products'},
size: {type: String, required: true},
quantity: {type: Number, required: true},
subTotal: {type: Number, required: true}
}
],
totalPrice: {type: Number, default: 0, required: true}
});
例
{
"_id": {
"$oid": "586f4be94d3e481378469a08"
},
"userPurchased": {
"$oid": "586dca1f5f4a7810fc890f97"
},
"totalPrice": 0,
"products": [
{
"product": {
"$oid": "58466e8e734d1d2b0ceeae00"
},
"size": "m",
"quantity": 5,
"subTotal": 1995,
"_id": {
"$oid": "586f4be94d3e481378469a09"
}
},
{
"subTotal": 1197,
"quantity": 3,
"size": "m",
"product": {
"$oid": "58466e8e734d1d2b0ceeae01"
},
"_id": {
"$oid": "586f4ef64d3e481378469a0a"
}
}
],
"__v": 0
}
有什麼辦法來總結所有的小計,並把它的總價場?現在我正在考慮集合函數,但我懷疑這是否是正確的方法。我想我需要一個更新查詢和求和方法在同一時間。任何人都可以在這裏幫助我嗎?
虛擬財產如何加總產品的所有價格?我不認爲有必要存儲總價格。 – Camo
我認爲聚合函數或map reduce函數是最好的解決方案。 MongoDB有一個格柵聚合和地圖重新定義框架。看看這個例子https://docs.mongodb.com/manual/core/map-reduce/ –
@Camo你能給我一個例子嗎?我認爲這是一個好主意。 –