有没有办法使用 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
提交
取消