You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PyMongo执行聚合操作时遭遇session参数非法值错误

问题原因

你调用aggregate()方法时传参错误:aggregate()的第二个参数接收的是ClientSession对象或None,而你把投影操作projection当成第二个参数传入,导致方法将其识别为session参数,从而触发错误。

解决方法

MongoDB聚合操作的所有阶段(包括$project)都需要放在同一个管道数组里,不需要单独传递投影参数。把你的projection阶段合并到pipeline数组即可。

修正后的代码
import pymongo

client = pymongo.MongoClient()
db = client["gym"]
print(db)

pipeline = [
    {
        "$group": {
            "_id": "$Age",
            "sportifs": {"$push": {"fullName": {"$concat": ["$Prenom", " ", "$Nom"]}}},
        }
    },
    # 将投影阶段合并到管道中
    {
        "$project": {"Age": "$_id", "ListOfSportifs": "$sportifs", "_id": 0}
    }
]

myCollection = db["Sportifs"]
# 只传递pipeline一个必填参数
sportifsCouple = myCollection.aggregate(pipeline)

for sportif in sportifsCouple:
    print(sportif)

内容的提问来源于stack exchange,提问作者ibtissam elhammoumy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 04:40:18