清理旧的Realm对象?

有没有简单的方法来从Realm数据库中删除旧数据? 就好像一些对象有一天存储自动删除它?

替代scheme可能是添加一个字段的date和提取和比较它来决定是否删除,但问题是如果Realm有一个方法本身来实现这一点

我已经看到了一些类似的问题( 比如这个 ), 但是Android (或Java)没有 ,在Realm文档中 ,我发现的唯一类似的方法是关于迁移。

现在的问题是,是否有其他方式可以自动从Realm中删除旧对象,例如存储数据,参数,configuration或Realm方法的条件,而不是每次比较。 很显然,通过查询,我们可以消除任何我们想要的对象。

链接的问题( 而不是答案 )的规范只是为了澄清这不是一个基于Swift的问题,并不乍看之下重复。

Solutions Collecting From Web of "清理旧的Realm对象?"

用date添加一个字段,并根据该字段查询要删除的date

那你可以做

  realm.where(MyClass.class) .lowerThan("date", someDate) .findAll() .deleteAllFromRealm() 

编辑:

现在的问题是,是否有其他方式可以自动从Realm中删除旧对象,例如存储数据,参数,configuration或Realm方法的条件,而不是每次比较。

没有

很显然,通过查询,我们可以消除任何我们想要的对象。

链接的基于Swift的答案完全一样。

不,在Realm本身并没有这样的function。

你的select是好的,但我不build议使用后台服务删除数据,所以查询时检查/删除数据。

设置报警pipe理器为每天(24小时的间隔)在报警pipe理器callback只需使用以下代码删除旧数据

 realm.where(BeanClass.class) .lowerThan("date", currentDate) .findAll() .deleteAllFromRealm(); 

Yupp你可以像这样删除旧的领域数据,

 realmConfiguration = new RealmConfiguration.Builder().build(); Realm.deleteRealm(realmConfiguration); realm = Realm.getInstance(realmConfiguration); 

在上面的行中,第二行是

 Realm.deleteRealm(realmConfiguration); 

执行删除旧的领域数据。 或者你可以删除特定类的数据,

 realm.where(YourClass.class) .lowerThan("date", currentDate) .findAll() .deleteAllFromRealm()