You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

遍历MongoDB集合时遇'list'对象无'find'属性错误求助

解决MongoDB遍历集合时的AttributeError: 'list' object has no attribute 'find'问题

嘿,我来帮你搞定这个报错!咱们先拆解下问题根源:

你代码里的collection=db.Collections这一行犯了个小错误——你的Tmobile数据库里根本没有名为Collections的集合,而且从报错信息里的['30dc6d110c7a0d3d371177ac0a3624bc_1', 'Mynew']能看出来,你误把集合名称的列表当成了MongoDB的集合对象,然后调用了find()方法,可列表类型根本没有这个查询方法,这就是报错的原因。

正确的实现代码

要遍历数据库中的所有集合并打印其中的文档,你需要先获取所有集合的名称,再逐个获取对应的集合对象执行查询。修改后的代码如下:

import pandas as pd
import json
from pandas.io.json import json_normalize
from pymongo import MongoClient
from pandas import DataFrame

# 建立MongoDB连接
connection = MongoClient('localhost', 27017)
db = connection.Tmobile

# 获取数据库中所有集合的名称
collection_names = db.list_collection_names()

# 遍历每个集合
for coll_name in collection_names:
    # 根据名称获取集合对象
    collection = db[coll_name]
    print(f"--- 集合 {coll_name} 的内容 ---")
    # 遍历集合中的每个文档并打印
    for doc in collection.find():
        print(doc)

额外优化方案

如果你只想遍历指定的两个集合(而不是数据库里的所有集合),可以直接定义目标集合列表,这样更高效:

# 指定需要遍历的集合名称
target_collections = ['Mynew', '30dc6d110c7a0d3d371177ac0a3624bc_1']
for coll_name in target_collections:
    collection = db[coll_name]
    print(f"--- 集合 {coll_name} 的内容 ---")
    for doc in collection.find():
        print(doc)

这样修改后,你就能正确遍历集合并打印其中的元素啦!

内容的提问来源于stack exchange,提问作者sri lakshmi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:49:57