2016-10-20 1 views
0
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 - это моя база данных. Но я хочу взять базу данных у пользователя и хочу читать коллекции по базе данных, введенные пользователем.Как получить все коллекции под базу данных в mongodb с помощью динамического python?

ответ

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()