惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
人人都是产品经理
人人都是产品经理
腾讯CDC
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
WordPress大学
WordPress大学
S
SegmentFault 最新的问题
小众软件
小众软件
B
Blog
博客园 - 叶小钗
Microsoft Azure Blog
Microsoft Azure Blog
Apple Machine Learning Research
Apple Machine Learning Research
A
About on SuperTechFans
J
Java Code Geeks
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
博客园 - 【当耐特】
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Recent Announcements
Recent Announcements
宝玉的分享
宝玉的分享
Martin Fowler
Martin Fowler
Hugging Face - Blog
Hugging Face - Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Last Week in AI
Last Week in AI
V
V2EX

MongoDB

求助,谁会用那个 mongoDB 的云数据库啊,帮看看咋链接报错呢 mongodb 自托管到底支持 vector 搜索吗 大佬们,急需请教,遇到大困难 有啥好用的 mongodb GUI 工具 大佬们,大问题请教,内存占满 mongodump 出来的文件为什么比数据库本身大了一倍多?数据库大小只有 100GB, dump 出来的 bson 有 242GB,硬盘放不下了,怎么不占用硬盘空间备份数据到其它机器? 想请教一下, mongoDB 是否适合海量数据存储 MongoDB 如何优化到跟 MySQL 资源占用一样低? 新人小白求教 mongodb 新手虚心请教大佬们 请教大家一个 mongodb 大数据量下, count 优化的问题 MongoDB 的 findOneAndUpdate 并发问题 求助大佬们: Mongo DB Compass 加 socks5 代理连不上 MongoDB Atlas 上的库 关于远程 mongodb 数据同步到本地 Elasticsearch 问题 mongodb 日志文件巨大,怎么读取,以及怎么限制其大小? 江湖救急,冷备数据恢复 感觉 Mongodb 的权限管理有点复杂 MongoDB 有什么比较新的入门教程吗? 有没有觉得用 typescript 写 mongoose 好蛋疼 mongodb 生产环境创建索引 刚用 mongodb,请教下类似 MySQL 的「select ... for update」大伙都是如何替代? 求一个好用的 MongoDB 管理工具~ mongodb 只剩硬盘上的数据库文件要怎么恢复 用不存在的字段的子字段 lookup 时,分组后该字段值会变成空对象,如何变成 null 各位 javaer MongoDB 用的什么 orm mongodb lookup 使用请教 monodb 内存占满,进程退出 12 月 14 日上海新天地朗廷酒店,我司赞助的 MongoDB Day 上海站,欢迎大家联系我注册报名。 mongoose 外键查询问题 MongDB upsert 时新增的字段不能更新值
mongodb 中的递归查找子目录
among · 2021-12-01 · via MongoDB

# 目录表
class TC_struct(Document):
    name = StringField()    #目录名
    parent = ObjectIdField()    #上层目录的 id


# 文件表
class TC_item(Document):
    # 所在目录
    parent = ReferenceField(TC_struct) #所在的目录

根据目录,递归查找目录中的所有文件。

#先找到所有的目录。path_id 为所选择目录的 id path_ls = recurs_path(TC_struct, path_id)

#然后找到目录下的所有文件 qry_list = Q(parent__in=path_ls)

#递归查找目录的方法。

def recurs_path(tb_cls, path_id):
    rds = tb_cls.objects(parent=ObjectId(path_id)).only('id')
    rt = list()
    rt.append(ObjectId(path_id))
    for rd in rds:
        # 递归查找子目录中的子目录
        rt.extend(recurs_path(tb_cls, rd._id))
    return rt

现在的问题是,如果目录结构很深,如有 4000 多个目录,在递归的时候,耗时特别长。

有没有方法,可以提升递归时的效率。 根本的需求是:递归查找目录中的所有文件。