接下来是PyMongotutorial,我在调用集合上的insert_one
方法时得到一个错误。
In [1]: import pymongo
In [2]: from pymongo import MongoClient
In [3]: client = MongoClient()
In [4]: db = client.new_db
In [5]: db
Out[5]: Database(MongoClient('localhost', 27017), u'new_db')
In [6]: posts = db.posts
In [7]: posts.insert_one({'a':1})
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-7-2271c01f9a85> in <module>()
----> 1 posts.insert_one({'a':1})
C:\Anaconda\lib\site-packages\pymongo-2.8-py2.7-win32.egg\pymongo\collection.py in __call__(self, *a
rgs, **kwargs)
1771 "call the '%s' method on a 'Collection' object it is "
1772 "failing because no such method exists." %
-> 1773 self.__name.split(".")[-1])
TypeError: 'Collection' object is not callable. If you meant to call the 'insert_one' method on a 'Collection' object it is failing because no such method exists.
网上有一些帖子讨论了这个错误,但是当用户调用一个不推荐的名字时,所有的帖子似乎都是这样。
有什么关于我做错什么的指导吗?
我也面临同样的问题。当我尝试使用命令升级我的PyMongo发行版时
我得到以下错误:
显然,在我的发行版上,由于权限不足,安装程序无法在dist packages文件夹中创建库。因此,我通过授予它写权限并重新安装PyMongo驱动程序解决了这个问题:
希望这有帮助。
问题是,您正在遵循当前版本文档中的教程,但实际上已经安装了PyMongo 2.8。
PyMongo 3.0中的^{} 方法是新的,现在已在PyMongo 2.9中进行了移植。因此很明显,您需要安装PyMongo 2.9或更高版本才能使用新的API特性。
您可以使用
pip
like安装或升级驱动程序。这是一个明确的问题,但这里的问题似乎是您正在阅读"beta"发行版文档,但很可能您实际上最多安装了“pymongo”2.8,而不是引用链接中提到的“3.0b”。
2.8 release tutorial改为指向^{} 方法:
因为^{} 只在3.0b驱动程序中可用。
要么强制安装“beta”驱动程序,要么使用稳定的驱动程序和可用的方法。
这似乎是当前“搜索引擎响应”与“beta版本”匹配为“当前”的错误。
相关问题 更多 >
编程相关推荐