无法在pymongo中打印集合中的值

时间:2019-04-10 19:40:02

标签: python mongodb pymongo

我试图获取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(主机= ['本地主机:27017'],document_class = dict,tz_aware = False,connect = True),u'dbName'),u'colecao')”

它带有变量名。

1 个答案:

答案 0 :(得分:0)

代替

  

client.dbName

使用

  

client.get_database(dbName)

,而不是

  

cursor = db.colecao

使用

  

光标= db.get_collection(colecao)