mongodb 如何设计多级结构?
各位,最近在学mongodb的时候有两个疑问,
(1)对于类似 文件夹-文件 这种多级的结构,如果使用mongodb,应该怎么设计集合的结构?就比如这样的一个文件夹目录:
dirA
├── dirB
│ └── txtC.txt
├── txtA.txt
└── txtB.txt
在一个文件夹下,可以创建文件夹或者文件,然后文件夹下又可以继续重复这个过程,如果要保存类似这样的结构,应该怎么设计集合呢?就类似下面这样,该怎么定义结构?
{
type: 'dir',
name: 'dirA',
files: [
{type: 'dir', name: 'dirB', files:[{type: 'file', name: 'txtC.txt'}]},
{type: 'file', name: 'txtA.txt'},
{type: 'file', name: 'txtB.txt'}
]
}
(2)如何在mongodb中保存文件?
可能描述的不是很清楚问题,凑合理解吧。。。
回复
1个回答
test
2024-06-30
db.files.insertMany( [
{ _id: "1", "name": "dirA", "type": "dir", ancestors: [ ], parent: null }
{ _id: "2", "name": "dirB", "type": "dir", ancestors: [ "1" ], parent: "1" },
{ _id: "3", "name": "txtA.txt", "type": "file", ancestors: [ "1" ], parent: "1" },
{ _id: "4", "name": "txtB.txt", "type": "file", ancestors: [ "1" ], parent: "1" },
{ _id: "5", "name": "txtC.txt", "type": "file", ancestors: [ "1", "2" ], parent: "2" }
] )
唯一约束
db.files.createIndex( { "name": 1, "parent": 1}, { unique: true } )
MongoDB数据模型设计(3)具有祖先数组的模型树结构作者:冰糕不冰链接:https://juejin.cn/post/6982210696431796237#heading-12来源:稀土掘金著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
基于 Linux 一切皆文件的设计思想,目录其实也是个文件,你甚至可以通过 vim 打开它,它也有 inode,inode 里面也是指向一些块。详细讲解,Linux内核——文件系统(建议收藏) - Linux嵌入式的文章 - 知乎https://zhuanlan.zhihu.com/p/505338841
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容