1 回答

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊
根據(jù)您的目標(biāo),您有幾個(gè)不同的選擇。
您可以使用聚合管道來計(jì)算總和:
?[
? ? ?{
? ? ? ? ?'$addFields': {
? ? ? ? ? ? ?'total': {
? ? ? ? ? ? ? ? ?'$sum': [
? ? ? ? ? ? ? ? ? ? ?'$field1', '$field2'
? ? ? ? ? ? ? ? ?]
? ? ? ? ? ? ?}
? ? ? ? ?}
? ? ?}
?]
結(jié)果將是一個(gè)包含總字段的文檔。請記住,這不會將總數(shù)存儲在您的數(shù)據(jù)庫中。
? {
? ? ? field1: 5,
? ? ? field2: 3,
? ? ? total: 8,
? }
您可以創(chuàng)建一個(gè)更改流來監(jiān)視 field1 和 field2 以檢查更改。進(jìn)行更改時(shí),您可以自動(dòng)更新存儲在數(shù)據(jù)庫中的總數(shù)。
如果您的數(shù)據(jù)庫存儲在MongoDB Atlas(MongoDB 的完全托管數(shù)據(jù)庫即服務(wù))中,您可以使用觸發(fā)器來監(jiān)視 field1 和 field2 的更改。觸發(fā)器建立在與 Change Streams 相同的概念之上。觸發(fā)器稍微簡單一些,因?yàn)槟槐負(fù)?dān)心自己托管和管理 Change Stream。
添加回答
舉報(bào)