使用Python从MongoDB Atlas获取数据仅显示10条的问题
解决MongoDB Atlas查询仅返回10条数据的问题
你的代码里find()返回的是pymongo的游标对象,它默认会分批从MongoDB服务器拉取数据,免费版Atlas集群的默认批次大小可能是10,再加上终端输出可能截断,就会看起来只拿到10条数据。另外也有可能你误以为没遍历完所有数据,或者需要先确认集合实际数据量。
这里给你几个解决方法:
- 一次性获取所有数据到列表
把游标直接转成列表,就能一次性拿到所有文档,之后再遍历输出:
from pymongo import MongoClient from pprint import pprint client = MongoClient("mongodb+srv://####:#####@cluster0.0gdmi0s.mongodb.net/retryWrites=true&w=majority") db = client.test # 转换为列表获取全部文档 all_docs = list(db.user.find()) for doc in all_docs: pprint(doc) # 顺便打印总数量确认 print(f"集合总共有 {len(all_docs)} 条文档")
- 调整游标批次大小
如果集合数据量很大,不想一次性加载到内存,可以手动设置更大的批次大小,让游标每次拉取更多数据:
cursor = db.user.find(batch_size=100) # 每次拉取100条 for doc in cursor: pprint(doc)
- 先确认集合实际数据量
先查一下集合里到底有多少条数据,排除是集合本身只有10条的情况:
total_count = db.user.count_documents({}) print(f"集合总文档数:{total_count}")
内容的提问来源于stack exchange,提问作者Muhammad Nihal C
相关产品推荐
相关产品推荐

