mongodb:如何使用 python (pymongo) 创建计算字段?

有没有办法使用 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)


潇湘沐
浏览 115回答 1
1回答

慕少森

根据您的目标,您有几个不同的选择。您可以使用聚合管道来计算总和: [     {         '$addFields': {             'total': {                 '$sum': [                     '$field1', '$field2'                 ]             }         }     } ]结果将是一个包含总字段的文档。请记住,这不会将总数存储在您的数据库中。  {      field1: 5,      field2: 3,      total: 8,  }您可以创建一个更改流来监视 field1 和 field2 以检查更改。进行更改时,您可以自动更新存储在数据库中的总数。如果您的数据库存储在MongoDB Atlas(MongoDB 的完全托管数据库即服务)中,您可以使用触发器来监视 field1 和 field2 的更改。触发器建立在与 Change Streams 相同的概念之上。触发器稍微简单一些,因为您不必担心自己托管和管理 Change Stream。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python