我是mongodb的新手,并且我已经在使用pymongo版本3.8.0和jupyter笔记本学习一些方法。一直很好,直到我尝试了“ $ lookup”方法,现在它开始引发错误
操作失败:未授权聚合执行命令。对于解决问题的任何帮助/建议将不胜感激。
我已经尝试过重新安装软件包,并启用Windows管理权限,但到目前为止尚未解决问题。
OperationFailure: not authorized on aggregations to execute command
{ aggregate: "air_routes", pipeline: [ { $match: { airplane: { $regex: "747|380" } } }, { $lookup: { from: "air_alliance", localField: "airline.name", foreignField: "airlines", as: "data_src" } },
{ $unwind: "$data_src" }, { $group: { _id: { name: "$name", airlines: "$airlines" }, numberofflights: { $sum: 1 } } }, { $sort: { numberofflights: -1 } },
{ allowDiskUse: true } ], cursor: {}, lsid: { id: UUID("af942a3d-309b-4cd2-a99b-3ebcd60406f4") }, $clusterTime: { clusterTime: Timestamp(1557101096, 1),
signature: { hash: BinData(0, AD50B7BE136F58D794C75C6AD031E92168EF61D1), keyId: 6627672121604571137 } }, $db: "aggregations", $readPreference: { mode: "primary" } }
请帮助解决此问题。谢谢,
最佳答案
好的,我已经找到了答案,很明显,这是与权限相关的问题,并且对数据库的第二次调用(数据库存储在Atlas集群上)正在传递一些参数(显然),这些参数要么是空的,要么没有正确地获取。 ,原因尚不清楚。因此,第二个集合集“ air_alliance”正在再现该错误。
一个有用的线程在这里给出https://jira.mongodb.org/browse/CSHARP-1722