Я ищу способ иметь папки и файлы в моем приложении, которое использует Mongodb.
Я думаю, что материализованные пути - лучший способ продолжить (потому что переименование или перемещение файлов / папок состоит только в изменении пути).
Моя проблема в том, что я не могу перечислить подкаталоги.
Например, со следующей структурой:
{ _id: "idFile1", path: ",DirA,File1," }
{ _id: "idFile2", path: ",DirA,File2," }
{ _id: "idFile3", path: ",DirA,DirB,File3," }
{ _id: "idFile4", path: ",DirA,DirB,DirC,File4," }
{ _id: "idFile5", path: ",DirA,DirB,DirD,File5," }
Какой лучший способ:
- Элементы списка в DirA (Файл1, Файл2, DirB);
- Элементы списка в DirB (File3, DirC, DirD);
- ...
Согласно этому сообщению Схема Mongoose для иерархических данных, таких как папка> подпапка> файл и документация, мне нужно создать пути для подкаталогов, например:
{ _id: "idDirB", path: ",DirA,DirB," }
И тогда я смогу составить список содержимого DirA, используя
Model.find( { path: /,DirA,[^,],$/ } )
Это не то, что я хочу, потому что в нем пропущен смысл использования материализованных путей (необходимо выполнять несколько запросов при смене имен, перемещении файлов или каталогов).
Так есть ли способ решить эту проблему?
Редактировать:
На самом деле хранение пути к каталогу является хорошим решением.
Но я только что понял, что у mongodb нет оператора для замены в строке (для перемещения / переименования внутри пути) ...
Полагаю, мне нужно выполнить запрос на поиск, а затем обновить поле пути для каждой записи: '(