亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

mongodb:如何使用 python (pymongo) 創建計算字段?

mongodb:如何使用 python (pymongo) 創建計算字段?

瀟湘沐 2023-04-25 16:30:50
有沒有辦法使用 pymongo 在 mongodb 中創建計算字段?example = {    "field1": 1,    "field2": 2,    "calculated_field": "field1" + "field2"}計算字段必須始終保持公式,如果稍后修改“field1”,結果必須更新。我已經閱讀了 mongodb 文檔,我可以看到它可以通過聚合管道來完成,但是 pymongo 的文檔在這個過程中并不是很清楚。編輯:目前,我正在嘗試插入一個新字段,如下所示,但未添加該字段。    pipeline = [    {        "$addFields": {            "calculated_field": {"$sum": ["field1", "field2"]}        }    }]dbCollection = database["col"]dbCollection.aggregate(pipeline)
查看完整描述

1 回答

?
慕少森

TA貢獻2019條經驗 獲得超9個贊

根據您的目標,您有幾個不同的選擇。


您可以使用聚合管道來計算總和:


?[

? ? ?{

? ? ? ? ?'$addFields': {

? ? ? ? ? ? ?'total': {

? ? ? ? ? ? ? ? ?'$sum': [

? ? ? ? ? ? ? ? ? ? ?'$field1', '$field2'

? ? ? ? ? ? ? ? ?]

? ? ? ? ? ? ?}

? ? ? ? ?}

? ? ?}

?]

結果將是一個包含總字段的文檔。請記住,這不會將總數存儲在您的數據庫中。


? {

? ? ? field1: 5,

? ? ? field2: 3,

? ? ? total: 8,

? }

您可以創建一個更改流來監視 field1 和 field2 以檢查更改。進行更改時,您可以自動更新存儲在數據庫中的總數。

如果您的數據庫存儲在MongoDB Atlas(MongoDB 的完全托管數據庫即服務)中,您可以使用觸發器來監視 field1 和 field2 的更改。觸發器建立在與 Change Streams 相同的概念之上。觸發器稍微簡單一些,因為您不必擔心自己托管和管理 Change Stream。

查看完整回答
反對 回復 2023-04-25
  • 1 回答
  • 0 關注
  • 145 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號