小编use*_*336的帖子

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

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

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

文件夹架构将是这样的:

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

并通过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;
}
Run Code Online (Sandbox Code Playgroud)

使用不同的对象扩展db.fs.files集合是一个很好的做法,或者更好地创建单独的集合(例如db.fs.folders),但是在fs.files和fs.folders上有两个查询来获取所有项目?

mongodb gridfs

5
推荐指数
1
解决办法
2439
查看次数

标签 统计

gridfs ×1

mongodb ×1