pymongo db.collection_names()返回空列表

时间:2015-11-19 18:14:06

标签: mongodb collections pymongo

我使用以下代码连接数据库,并为每个数据库列出所有集合:

conMongo =MongoClient(connect,27017)
listOfDBs = conMongo.database_names()

for i in listOfDBs:
    db = conMongo[i]
    print db
    print db.collection_names(): 

 conMongo.disconnect()

与数据库的连接没有任何问题,可以打印数据库列表。

但db.collection_names()打印空列表,尽管每个数据库中有许多集合。

3 个答案:

答案 0 :(得分:0)

我通过更新pymongo包解决了我的问题:

Could not fetch URL

答案 1 :(得分:0)

这是一个老错误(PYTHON-790,SERVER-16224),至少可以追溯到2014年。一个使用2.8之前版本的pymongo的系统(例如Ubuntu 14,卡在{{1} 2.6.3)询问2.8或更高版本的MongoDB服务器会看到它的pymongo方法总是返回一个空列表。没有简单的解决方法,只使用collection_names()

,您将被简化为仅对集合存在进行测试

答案 2 :(得分:0)

仔细检查数据库名称

MongoDB 是区分大小写的数据库,因此代码中的数据库名称和服务器应该完全相同。 对我来说,我的数据库名称是 db_name,我在我的代码中查找了 db-name 所以它不起作用

希望有帮助:)