Python 解密连接到托管在<;的mongo实例时发生的错误;项目>;。流星网

Python 解密连接到托管在<;的mongo实例时发生的错误;项目>;。流星网,python,mongodb,meteor,Python,Mongodb,Meteor,我想使用python连接到mongo的一个实例,该实例绑定到meteor.com上托管的meteor应用程序。我已经通过meteor mongo-U命令获得了我的应用程序的URL,并且我能够连接。但是,当我连接并尝试做一些简单的事情(枚举“幻灯片”集合中的文档)时,我会遇到一个错误: In [1]: import pymongo In [2]: con = pymongo.Connection("mongodb://client:f066d336-f5bd-1a85-1039-c679fbb6

我想使用python连接到mongo的一个实例,该实例绑定到meteor.com上托管的meteor应用程序。我已经通过
meteor mongo-U
命令获得了我的应用程序的URL,并且我能够连接。但是,当我连接并尝试做一些简单的事情(枚举“幻灯片”集合中的文档)时,我会遇到一个错误:

In [1]: import pymongo

In [2]: con = pymongo.Connection("mongodb://client:f066d336-f5bd-1a85-1039-c679fbb645a1@skybreak.member0.mongolayer.com:27017/slides_meteor_com").meteor

In [3]: con.slides.find()
Out[3]: <pymongo.cursor.Cursor at 0x109873690>

In [4]: [ x for x in con.slides.find() ]
---------------------------------------------------------------------------
OperationFailure                          Traceback (most recent call last)
/Users/bensonk/Code/lfnw-elite-talk/<ipython-input-4-2112945d50ca> in <module>()
----> 1 [ x for x in con.slides.find() ]

/Library/Python/2.7/site-packages/pymongo/cursor.pyc in next(self)
    701             raise StopIteration
    702         db = self.__collection.database
--> 703         if len(self.__data) or self._refresh():
    704             if self.__manipulate:
    705                 return db._fix_outgoing(self.__data.pop(0), self.__collection)

/Library/Python/2.7/site-packages/pymongo/cursor.pyc in _refresh(self)
    664                               self.__skip, ntoreturn,
    665                               self.__query_spec(), self.__fields,
--> 666                               self.__uuid_subtype))
    667             if not self.__id:
    668                 self.__killed = True

/Library/Python/2.7/site-packages/pymongo/cursor.pyc in __send_message(self, message)
    626             response = helpers._unpack_response(response, self.__id,
    627                                                 self.__as_class,
--> 628                                                 self.__tz_aware)
    629         except AutoReconnect:
    630             db.connection.disconnect()

/Library/Python/2.7/site-packages/pymongo/helpers.pyc in _unpack_response(response, cursor_id, as_class, tz_aware)
     99             raise AutoReconnect("master has changed")
    100         raise OperationFailure("database error: %s" %
--> 101                                error_object["$err"])
    102 
    103     result = {}

OperationFailure: database error: unauthorized db:meteor lock type:-1 client:173.160.192.81
[1]中的
:导入pymongo
在[2]中:con=pymongo.Connection(“mongodb://client:f066d336-f5bd-1a85-1039-c679fbb645a1@skybreak.member0.mongolayer.com:27017/幻灯片“流星”.流星
在[3]中:con.slides.find()
出[3]:
在[4]中:[x代表con.slides.find()中的x]
---------------------------------------------------------------------------
操作失败回溯(最近一次调用上次)
/用户/bensonk/Code/lfnw精英对话/in()
---->1[x代表con.slides.find()中的x]
/next(self)中的Library/Python/2.7/site-packages/pymongo/cursor.pyc
701上升停止迭代
702 db=self.\u collection.database
-->703如果len(self.\u数据)或self.\u refresh():
704如果自行操作:
705返回db.\u修复\u传出(self.\u data.pop(0),self.\u集合)
/Library/Python/2.7/site-packages/pymongo/cursor.pyc in_refresh(self)
664自身。\u跳过,返回,
665 self.\uuu query\u spec(),self.\uu字段,
-->666自我识别(子类型)
667如果不是自己的身份证:
668 self.\uuu killed=True
/Library/Python/2.7/site-packages/pymongo/cursor.pyc in\uuuu发送消息(self,message)
626 response=助手。\解包\响应(响应,自我。\ id,
627自我作为班级,
-->628自我意识)
629除自动重新连接外:
630 db.连接断开()
/响应中的Library/Python/2.7/site-packages/pymongo/helpers.pyc(响应,游标id,as_类,tz_感知)
99升起自动重新连接(“主机已更改”)
100 raise操作失败(“数据库错误:%s”%
-->101错误\u对象[“$err”])
102
103结果={}
操作失败:数据库错误:未经授权的数据库:meteor锁类型:-1客户端:173.160.192.81

据我所知,这是mongo建议我无法阅读该收藏。我可以从mongo控制台通过meteor mongo读取它,看起来您的数据库正在使用身份验证,而您没有指定用户名/密码。在python中,这是通过
db.authenticate(用户名、密码)
完成的。此处的详细信息:

知道meteor实例的用户名/密码是什么吗?:-)这是有用的信息,但仍然不是问题的答案,因为它特别涉及meteor实例。实际上,在URI(客户端:f066d336-f5bd-1a85-1039-c679fbb645a1)中的代码示例中似乎有用户名:密码。您可以尝试使用mongo shell进行连接并验证其正确性吗?我将尝试。有人告诉我,meteor mongo-U输出的URI输出的URL仅在1分钟内有效,因此我必须对其进行分类。这需要一点时间。