我试图获取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')”
它带有变量名。
答案 0 :(得分:0)
代替
client.dbName
使用
client.get_database(dbName)
,而不是
cursor = db.colecao
使用
光标= db.get_collection(colecao)