为了账号安全,请及时绑定邮箱和手机立即绑定

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 关注
  • 114 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信