Не могу распечатать значения из коллекций в пимонго - PullRequest
0 голосов
/ 10 апреля 2019

Я пытаюсь получить значения всех баз данных, существующих в mongodb, перебрать все базы данных и коллекции для печати документов. Я могу напечатать документ, передавая коллекцию как переменную, но не могу сделать это итерируя по всем базам данных и коллекциям (как значение переменной). Кто-то знает, поддерживает ли pymongo динамическую передачу в качестве значения, а не передачу коллекции и базы данных в качестве самой переменной ??

client = MongoClient('mongodb://localhost:27017/')

names = client.database_names()
for dbName in names:
    print(dbName)
    db = client.dbName
    collectionNames = client[dbName].collection_names()
    for colecao in collectionNames: 
        print(colecao)
        cursor = db.colecao # choosing the collection you need
        print(cursor)
        cursor2 = cursor.find()  # get documents
        for document in cursor2:
            pprint(document)

Имена баз данных и имен коллекций печатаются нормально, но курсор печати возвращает: "Коллекция (База данных (MongoClient (host = ['localhost: 27017'], document_class = dict, tz_aware = False, connect = True), u'dbName '), u'colecao')"

Идет с именами переменных.

1 Ответ

0 голосов
/ 10 апреля 2019

вместо

client.dbName

использовать

client.get_database (DBNAME)

и вместо

курсор = дБ.colecao

использовать

cursor = db.get_collection (colecao)

...