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)))
Другие вопросы по тегам