3
我想用GridFS創建一個虛擬文件系統。在fs.files集合中存儲文件夾
其實,我想從文件夾對象的GridFS擴展fs.files集合。
文件夾模式會是這樣的:
var folder = {
_id: new ObjectID(),
name: "Folder1",
metadata: {
type: "Folder",
parentId: ObjectID("xxxxxxxxx")
}
};
,並獲得由parentId的所有文件和文件夾,這將是一個對象ID和存儲在同一個集合中:
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上有兩個查詢來獲取所有項目?