W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
支持端:小程序 2.7.4, 云函數(shù) 0.8.1, Web
聚合操作符。自定義變量,并且在指定表達(dá)式中使用,返回的結(jié)果是表達(dá)式的結(jié)果。
let 的語(yǔ)法如下:
db.command.aggregate.let({
vars: {
<變量1>: <變量表達(dá)式>,
<變量2>: <變量表達(dá)式>,
...
},
in: <結(jié)果表達(dá)式>
})
vars 中可以定義多個(gè)變量,變量的值由 變量表達(dá)式 計(jì)算而來(lái),并且被定義的變量只有在 in 中的 結(jié)果表達(dá)式 才可以訪問(wèn)。
在 in 的結(jié)果表達(dá)式中訪問(wèn)自定義變量時(shí)候,請(qǐng)?jiān)谧兞棵凹由想p美元符號(hào)( $$ )并用引號(hào)括起來(lái)。
假設(shè)代表商品的集合 goods 的記錄如下:price 代表商品價(jià)格,discount 代表商品折扣率,cost 代表商品成本
{ "cost": -10, "discount": 0.95, "price": 100 }
{ "cost": -15, "discount": 0.98, "price": 1 }
{ "cost": -10, "discount": 1, "price": 10 }
借助 let 可以定義并計(jì)算每件商品實(shí)際的銷售價(jià)格,并將其賦值給自定義變量 priceTotal。最后再將 priceTotal 與 cost 進(jìn)行取和( sum )運(yùn)算,得到每件商品的利潤(rùn)。
代碼如下:
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號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: