pymongo db.collection_names() return 空列表
pymongo db.collection_names() return empty list
我正在使用以下代码连接到数据库并为每个数据库列出所有集合:
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() 打印空列表,尽管每个数据库中有很多集合。
我通过更新 pymongo 包解决了我的问题:
easy_install --upgrade pymongo
这是一个至少可以追溯到 2014 年的旧错误(PYTHON-790,SERVER-16224)。
使用pymongo
2.8之前版本的系统(例如Ubuntu14,卡在pymongo
2.6.3)来查询2.8或更高版本MongoDB 服务器将看到它的 collection_names()
方法总是 return 一个空列表。
没有简单的解决方法,您将只能使用以下命令测试集合是否存在:
database['collection'].count() > 0
仔细检查数据库名称
MongoDB是区分大小写的数据库,所以代码中的数据库名称和服务器要完全一致。
对我来说,我的数据库名称是 db_name
并且我在我的代码中查找 db-name
所以它不起作用
希望对您有所帮助:)
我正在使用以下代码连接到数据库并为每个数据库列出所有集合:
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() 打印空列表,尽管每个数据库中有很多集合。
我通过更新 pymongo 包解决了我的问题:
easy_install --upgrade pymongo
这是一个至少可以追溯到 2014 年的旧错误(PYTHON-790,SERVER-16224)。
使用pymongo
2.8之前版本的系统(例如Ubuntu14,卡在pymongo
2.6.3)来查询2.8或更高版本MongoDB 服务器将看到它的 collection_names()
方法总是 return 一个空列表。
没有简单的解决方法,您将只能使用以下命令测试集合是否存在:
database['collection'].count() > 0
仔细检查数据库名称
MongoDB是区分大小写的数据库,所以代码中的数据库名称和服务器要完全一致。
对我来说,我的数据库名称是 db_name
并且我在我的代码中查找 db-name
所以它不起作用
希望对您有所帮助:)