Python 解密连接到托管在<;的mongo实例时发生的错误;项目>;。流星网
我想使用python连接到mongo的一个实例,该实例绑定到meteor.com上托管的meteor应用程序。我已经通过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
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分钟内有效,因此我必须对其进行分类。这需要一点时间。