MongoDB-树形结构
树形结构
在 MongoDB 中我们除了可以使用 '内嵌式结构' 和 '规范式结构' 来表示数据的关系以外, 由于MongoDB数据的灵活性, 我们还可以使用'树形结构'来表示数据之间的关系。
树形结构概述
Database
|
|--------------------|
Relational No-Relational
| |-----------|-------------|
MySQL Key-Value Document
| |
Redis MongoDB
对于经常需要查询子节点的数据可以存储如以下的数据结构来表示:
{name:'Database', parent:null}
{name:'No-Relational', parent:'Database'}
{name:'Document', parent:'No-Relational'}
{name:'MongoDB', parent:'Document'}
{name:'Key-Value', parent:'No-Relational'}
{name:'Redis', parent:'Key-Value'}
例如: 我们要查询非关系型数据库有几种类型, 我们可以使用 find({parent:'No-Relational'})
。
对于经常需要查询父节点的数据可以存储如下的数据结构来表示:
{name:'Database', children:['Relational', 'No-Relational']}
{name:'No-Relational', children:['Key-Value', 'Document']}
{name:'Document', children:['MongoDB']}
{name:'MongoDB', children:[]}
例如: 我们要查询MongoDB是什么类型的的数据, 我们可以使用 find({children:{$in:['MongoDB']}})
。
对于经常查询祖先或者后代节点的数据的存储结构表示:
{name:'Database', ancestors:[]}
{name:'No-Relational', ancestors:['Database']}
{name:'Document', ancestors:['Database', 'No-Relational']}
{name:'MongoDB', ancestors:['Database', 'No-Relational', 'Document']}
例如: 我们要查询MongoDB的祖先有哪些, 我们可以使用 find({name:'MongoDB'})
,我们要查询Database的后代有哪些, 我们可以使用 find({ancestors:{$in:['Database']}}})
。
还有一种就是结合深度优先或者广度优先算法来实现树形结构,这里不介绍。
分类:
MongoDB4.X+新特性
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
2020-09-10 EasyUI