Использование Spring Mongo - это способ удаления нескольких файлов из Mongo (хранимых в GridFS) одновременно с использованием только запроса или чего-то подобного? Например, если у меня есть в коллекции .files поле Язык Я хочу иметь возможность удалять все записи из .files, а также из .chunks в одном запросе. Не уверен, что это возможно в Монго (за пределами Весны).String Mongo удалить все файлы из GridFs
Пытались использовать GridFsTemplate но метод удаления вызывает метод GridFS.remove (код из Спринг-MongoDB)
public void delete(Query query) {
getGridFs().remove(getMappedQuery(query));
}
И этот метод получает все файлы в памяти, а затем удаляет их по одному:
public void remove(DBObject query){
for (GridFSDBFile f : find(query)){
f.remove();
}
}
void remove(){
_fs._filesCollection.remove(new BasicDBObject("_id" , _id));
_fs._chunkCollection.remove(new BasicDBObject("files_id" , _id));
}
UPDATE: от комментариев:
Да, вы не можете выполнять такого рода запросы в MongoDB. Кроме того, нет прямого способа удаления группы файлов в GridFS, используя инструмент командной строки mongofiles и драйвер mongo java.
'* .files' и' * .chunks' две отдельные коллекции. В MongoDB невозможно выполнить операции над двумя отдельными коллекциями в рамках одного запроса. Как минимум, это должны быть два запроса: по одному для каждой коллекции. Кроме того, вы обычно используете встроенные методы GridFS вашего драйвера, если они доступны (я не знаком с Spring). – zamnuts