PyMongo 聚合不适用于 $max 运算符
Posted
技术标签:
【中文标题】PyMongo 聚合不适用于 $max 运算符【英文标题】:PyMongo aggregation Not working with $max operator 【发布时间】:2020-09-17 01:54:19 【问题描述】:我的查询在 mongo shell 上运行良好。但是当通过 pymongo 运行时会出错。有人可以帮我解决这个问题吗?
db.collectioname.aggregate([
"$match": "$and": [
"organization_id": int(organization_id) ,
"resulttime":
"$gte":stdate,
"$lte":enddate
]
,
"$skip" : int(offset) ,
"$limit" : int(limit) ,
"$group":
"_id": "$userid",
"max_temperature": "$max": "$temperature" ,
"min_temperature": "$min": "$temperature"
])
但是,我收到一个错误
pymongo.errors.OperationFailure: unknown operator: $max
【问题讨论】:
【参考方案1】:我试过了;这对我来说可以。您能否确认此示例代码有效。如果不打印完整的堆栈跟踪。
import pymongo
import datetime
offset = 0
limit = 1
organization_id = 1
stdate = datetime.datetime(2020, 1, 1, 0, 0)
enddate = datetime.datetime(2021, 1, 1, 0, 0)
db = pymongo.MongoClient()['mydatabase']
db.collectioname.insert_one('organization_id': organization_id, 'resulttime': datetime.datetime.now(), 'temperature': 37.4)
records = db.collectioname.aggregate([
"$match": "$and": [
"organization_id": int(organization_id),
"resulttime":
"$gte": stdate,
"$lte": enddate
]
,
"$skip": int(offset),
"$limit": int(limit),
"$group":
"_id": "$userid",
"max_temperature": "$max": "$temperature",
"min_temperature": "$min": "$temperature"
])
print(list(records))
【讨论】:
非常感谢您的帮助。我发现了错误并已修复。以上是关于PyMongo 聚合不适用于 $max 运算符的主要内容,如果未能解决你的问题,请参考以下文章