Grails Gorm Mongodb удалить кусками
Как удалить документы из MongoDB порциями, используя gorm?findAll
последующее удаление не будет работать из-за огромного количества документов, возвращаемых findAll. Это приводит к проблеме кучи.
Я надеялся отправить собственную команду dong mongo, используя класс Domain. Я не хочу извлекать все объекты домена в кучу JVM, а затем повторять, чтобы удалить их. Вместо этого я хочу отправить критерии удаления в Монго, и позволить ему обработать удаление.
Есть ли какие-либо указатели на пакетное удаление с использованием низкоуровневых запросов? или любым другим способом?
2 ответа
Используйте Монго-Горм / Гмонго low-level
API:
SomeDomain.collection.remove( [ date:[ $lt:now ] ] )
см. руководство пользователя для деталей
Приведенный ниже подход помог отправить команду удаления в MongoDB.
MyDomainClass.collection.remove(new BasicDBObject("property", valueOrCondition))
Моим требованием было удалить все документы, которые старше указанных данных. Ниже приведенный код помог мне достичь того, что я хотел:
MyDomainClass.collection.remove(new BasicDBObject("createdDate", new BasicDBObject('$lt', createdDateCutOff)))