gpt4 book ai didi

mongodb - 将文件夹存储在 fs.files 集合中

转载 作者:IT老高 更新时间:2023-10-28 12:29:06 26 4
gpt4 key购买 nike

我想用 GridFS 创建一个虚拟文件系统。

实际上,我正在考虑使用文件夹对象从 GridFS 扩展 fs.files 集合。

文件夹架构如下:

var folder = {
_id: new ObjectID(),
name: "Folder1",
metadata: {
type: "Folder",
parentId: ObjectID("xxxxxxxxx")
}
};

并通过 parentId 获取所有文件和文件夹,这将是一个 ObjectID 并存储在同一个集合中:

function getFilesAndFolders(parentId) {
var items = db.fs.files.find({ "metadata.parentId": parentId });

items.forEach(function (item) {
switch (item.metadata.type) {
case "Folder":
// Do something with the folder
break;
case "File":
// Do something with the file
break;
default: break;
}
});

return items;
}

使用不同的对象扩展 db.fs.files 集合是一个好习惯,或者创建单独的集合(例如 db.fs.folders)更好,但对 fs.files 和 fs.folders 有两个查询获得所有元素?

最佳答案

有一些使用标准 GridFS 实现的方法可能对您的虚拟文件夹概念有所帮助:

  1. 您可以将“虚拟文件夹”路径的值保存在 GridFS files 中。元数据。假设你想实现一个嵌套的文件夹层次结构,阅读 MongoDB 数据模型文档会很有用,其中包含 Model Tree Structures 的常见模式。 .

  2. GridFS有“桶”或命名空间的概念。默认命名空间是 fs,但您可以为每个“虚拟文件夹”或相对扁平的内容类型使用不同的命名空间。

关于mongodb - 将文件夹存储在 fs.files 集合中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21254138/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com