如何使用python动态获取mongodb中数据库下的所有集合?

时间:2016-10-20 13:52:32

标签: python mongodb pymongo database

from pymongo import MongoClient
Client = MongoClient('localhost', 27017)
dbs = Client.database_names()
for val in range(len(dbs)):
    print "%s : %s"%(val,dbs[val])
database = input(" Select the Database ")
ex = dbs[database]

print ex
cols = Client.ex.collection_names()
print cols
for c in cols:
    print c

这是我的代码..如果我使用Client.m101.collection_names()我可以获得数据库下的所有集合。 注意:m101是我的数据库。但我想从用户那里获取数据库,并希望在用户输入的数据库下阅读集合。

1 个答案:

答案 0 :(得分:0)

您可以使用 MongoClient 连接实例上的字典样式访问来访问数据库,该实例会删除特定于Python的命名限制,如下所示:

from pymongo import MongoClient

def get_collection_names(dbname):
    client = MongoClient('localhost', 27017)
    db = client[dbname]
    return db.collection_names()

def main():
    database = input(" Select the Database ")
    cols = get_collection_names(database)
    for c in cols:
        print c

if __name__ == '__main__':
    main()