mongodb: 如何使用 python (pymongo) 创建计算字段?
mongodb: how to create a calculated field using 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)
根据您的目标,您有几个不同的选择。
可以使用聚合管道计算总和:
[
{
'$addFields': {
'total': {
'$sum': [
'$field1', '$field2'
]
}
}
}
]
结果将是一个包含总计字段的文档。请记住,这不会将总数存储在您的数据库中。
{
field1: 5,
field2: 3,
total: 8,
}
您可以创建一个更改流来监视 field1 和 field2 以检查更改。进行更改时,您可以自动更新存储在数据库中的总数。有关如何在 Python.
中创建更改流的详细信息,请参阅 https://developer.mongodb.com/quickstart/python-change-streams
如果您的数据库存储在 MongoDB Atlas (MongoDB's fully managed database-as-a-service), you can use a Trigger to monitor field1 and field2 for changes. Triggers are built on the same concepts as Change Streams. Triggers are a bit simpler since you don't have worry about hosting and managing the Change Stream yourself. See https://docs.atlas.mongodb.com/triggers/ 中以获得有关触发器的更多信息。
有没有办法使用 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)
根据您的目标,您有几个不同的选择。
可以使用聚合管道计算总和:
[ { '$addFields': { 'total': { '$sum': [ '$field1', '$field2' ] } } } ]
结果将是一个包含总计字段的文档。请记住,这不会将总数存储在您的数据库中。
{ field1: 5, field2: 3, total: 8, }
您可以创建一个更改流来监视 field1 和 field2 以检查更改。进行更改时,您可以自动更新存储在数据库中的总数。有关如何在 Python.
中创建更改流的详细信息,请参阅 https://developer.mongodb.com/quickstart/python-change-streams如果您的数据库存储在 MongoDB Atlas (MongoDB's fully managed database-as-a-service), you can use a Trigger to monitor field1 and field2 for changes. Triggers are built on the same concepts as Change Streams. Triggers are a bit simpler since you don't have worry about hosting and managing the Change Stream yourself. See https://docs.atlas.mongodb.com/triggers/ 中以获得有关触发器的更多信息。