python - 如何在pymongo的循环内循环所有mongodb集合和集合数据
问题描述
我正在读取 mongodb 数据库的所有集合,同时在 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)
D b
第一个集合
{
"_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))
推荐阅读
- javascript - 引导轮播视频
- command-line - vi 升级到 catalina 后挂在 macos 上
- vue.js - 如何在 Vue 中使用分隔符“加入”元素?
- javascript - 从 react.js 从 Express.js API 获取数据。邮递员的要求有效
- java - 简单的 web java 应用程序可以与 heroku 本地 web 一起使用,但是在部署时它会崩溃
- amazon-web-services - Lambda 函数的调用次数少于预期
- javascript - A字架| 如何检测正确的控制器以设置正确的事件?
- android - 使用 androidx.navigation.ui 和 backstack
- json - 如何过滤掉 JSON 的某些字段?
- c++ - 如何输出增加的值?