[英]how to loop all collections of mongodb and data of collection inside loop in pymongo
我正在读取 mongodb 数据库的所有 collections 并同时在 for 循环中循环集合名称以使用 pymongo 动态获取每个集合数据。
这是在带有 pymongo 的 python 3.7 和 mongodb 3.4 上运行的
from pymongo import MongoClient
from bson.objectid import ObjectId
import json
client = MongoClient("localhost", 27017, maxPoolSize=50)
#print(client)
mydatabase = client["testdb"]
collections = mydatabase.collection_names(include_system_collections=False)
for collectionName in collections:
print(collectionName)
mydata = mydatabase.collectionName.find({})
for value in mydata:
print(value)
for key,valueOFproject in value:
print(key)
print(value)
第一个集合
{
"_id" : "hiphdkTest_HIPHDK_76P1_P00_19WW09Test",
"project" : "hiphdktest",
"config" : "HIPHDK_76P1_P00_19WW09test",
"manual" : {
"tag1" : "fdsfsdfsd",
"No" : "No",
"prqdata1" : "fsdfadfasdfasdfsdfsd",
"admin1" : "dbhiphdk"
}
}
第二次收集
{
"_id" : "hiphdk_HIPHDK_76P1_P00",
"project" : "hiphdk",
"config" : "HIPHDK_76P1_P00",
"manual" : {
"tag1" : "fdsfsdfsd",
"No" : "No",
"prqdata1" : "fsdfadfasdfasdfsdfsd",
"admin1" : "dbhiphdk"
}
}
第三次收藏
{
"_id" : "hiphdk_HIPHDK_76P1_P00_19WW09",
"project" : "hiphdk",
"config" : "HIPHDK_76P1_P00_19WW09",
"manual" : {
"tag1" : "fdsfsdfsd",
"No" : "No",
"prqdata1" : "fsdfadfasdfasdfsdfsd",
"admin1" : "dbhiphdk"
}
}
只获取集合名称
hiphdk_HIPHDK_76P1_P00_19WW09 hiphdk_HIPHDK_76P1_P00 hiphdkTest_HIPHDK_76P1_P00_19WW09Test
它应该打印集合名称和每个集合的数据。
关键变化是这一行mydata = mydatabase[collectionName].find({})
看看这是否能满足您的需求:
from pymongo import MongoClient
from bson.json_util import dumps
client = MongoClient("localhost", 27017, maxPoolSize=50)
mydatabase = client["testdb"]
collections = mydatabase.list_collection_names(include_system_collections=False)
for collectionName in collections:
mydata = mydatabase[collectionName].find({})
for value in mydata:
print(dumps(value))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.