我是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" } }
请帮助解决此问题。谢谢,
答案 0 :(得分:0)
好吧,我找到了答案,很明显,这是与权限相关的问题,第二次调用数据库(数据库存储在Atlas集群中)正在传递一些参数(显然),这些参数要么是空的要么是无法正确获取,原因尚不清楚。因此,第二个集合集“ air_alliance”正在再现该错误。