How to find names of all collections using PyMongo?
This is very simple. e.g.
import pymongo
import json
if __name__ == '__main__':
client = pymongo.MongoClient("localhost", 27017, maxPoolSize=50)
d = dict((db, [collection for collection in client[db].collection_names()])
for db in client.database_names())
print json.dumps(d)
result -> {"database1":["collection1","collection2"...], "database2": [...], ...}, like:
{"test": ["score", "test4", "test5", "test6", "test3", "test7", "user", "test2", "test8"],
"testdb": ["test5", "test8", "test2", "test9", "test3", "test4", "test6", "test"],
"local": ["startup_log"],
"stackoverflow": ["questions"]}
To find the collections, you can use collection_names()
- https://pymongo.readthedocs.io/en/stable/api/pymongo/database.html#pymongo.database.Database.collection_names
Update:
The collection_names
is deprecated from 3.7
onwards and been replaced by list_collection_names()
- https://pymongo.readthedocs.io/en/stable/api/pymongo/database.html#pymongo.database.Database.list_collection_names