【发布时间】:2014-07-08 22:32:34
【问题描述】:
我在后端有一个带有 Mongodb 的 Grails 应用程序。我试图在执行函数后立即删除集合的所有记录。这是我在 ResourceController 中尝试过的:
def report()
{
Resource.where { }.deleteAll() //expected to delete all records from resource collection.
}
它不起作用。
def report()
{
def p = Resource.findAll()
p.delete()
}
两种方法都没有奏效。 有什么方法可以在执行方法后立即从集合中删除所有记录?我阅读了文档,它说 GORM 不支持全部删除。如果有人知道任何解决方法,请告诉我。
【问题讨论】:
-
def p = Resource.list() 然后 p*.delete() 可能会起作用。
-
如果它不支持删除,那么删除的唯一方法就是直接调用底层驱动程序。你在哪里发现它不支持删除? - 它在 MongoDB 中称为 remove ,此页面显示了一个示例:spring.io/guides/gs/accessing-data-gorm-mongodb
-
grails.org/doc/2.3.x/guide/GORM.html 声明:Grails 不提供 deleteAll 方法,因为不鼓励删除数据,并且通常可以通过布尔标志/逻辑来避免。我会尝试这种方法谢谢
-
@JoshuaMoore 很抱歉没有删除 :( Asya 的解决方案确实有效。谢谢。
标签: mongodb grails grails-orm