W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
支持端:小程序 2.7.4, 云函數(shù) 0.8.1, Web
聚合操作符。自定義變量,并且在指定表達式中使用,返回的結(jié)果是表達式的結(jié)果。
let 的語法如下:
db.command.aggregate.let({
vars: {
<變量1>: <變量表達式>,
<變量2>: <變量表達式>,
...
},
in: <結(jié)果表達式>
})
vars 中可以定義多個變量,變量的值由 變量表達式 計算而來,并且被定義的變量只有在 in 中的 結(jié)果表達式 才可以訪問。
在 in 的結(jié)果表達式中訪問自定義變量時候,請在變量名前加上雙美元符號( $$ )并用引號括起來。
假設代表商品的集合 goods 的記錄如下:price 代表商品價格,discount 代表商品折扣率,cost 代表商品成本
{ "cost": -10, "discount": 0.95, "price": 100 }
{ "cost": -15, "discount": 0.98, "price": 1 }
{ "cost": -10, "discount": 1, "price": 10 }
借助 let 可以定義并計算每件商品實際的銷售價格,并將其賦值給自定義變量 priceTotal。最后再將 priceTotal 與 cost 進行取和( sum )運算,得到每件商品的利潤。
代碼如下:
const $ = db.command.aggregate
db
.collection('goods')
.aggregate()
.project({
profit: $.let({
vars: {
priceTotal: $.multiply(['$price', '$discount'])
},
in: $.sum(['$$priceTotal', '$cost'])
})
})
.end()
返回的數(shù)據(jù)結(jié)果如下:
{ "profit": 85 }
{ "profit": -14.02 }
{ "profit": 0 }
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: