有沒有辦法使用 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。
添加回答
舉報
0/150
提交
取消