如何访问MongoDB中集合下的文档?

How to access documents under a collection in MongoDB?

我有一个 MongoDB 数据库,其中存储了股票数据。每个股票数据都存储为一个单独的集合,集合名称为股票名称,每个集合中存储了id, time, open, high, low, close, volume个数据,每个stock.You可以看到每个集合的结构在图片中下面:

我想要做的是找到每个集合,并将其数据分别存储为新的 python 字典。但是我的代码不能正常工作没有错误。

from pymongo import MongoClient
from pprint import pprint


myclient = MongoClient("mongodb://localhost:27017/") #, username='mongo-admin', password='password')
mydb = myclient["db-data-stock"]
pprint(mydb)
posts = mydb.list_collection_names()


for item in posts:
    for data in item:
        pprint(data)

而且它只打印集合的名称而不是其中的数据!

posts 的输出是一个列表,内容如下:

['کیمیا',
 'ونفت',
 'اخزا807',
 'دیران',
 'وزمین',
 'کحافظ',
 'لبوتان']

嵌套 fors 的输出如下:

'ر'
'ک'
'ب'
'ا'
'ف'
'ق'
'ث'
'ج'
'و'
'ا'
'ن'
'ک'
'ی'
'ش'

您正在尝试遍历集合名称(字符串)而不是它的 MongoDB-cursor

我想下面的代码就是您要找的:

from pymongo import MongoClient
from pprint import pprint


myclient = MongoClient("mongodb://localhost:27017/") #, username='mongo-admin', password='password')
mydb = myclient["db-data-stock"]
pprint(mydb)
posts = mydb.list_collection_names()


for item in posts:
    for data in mydb[item].find({}):
        pprint(data)