清理旧的 Realm 对象?

2022-09-02 13:26:45

有没有一种简单的方法可以从 Realm 数据库中删除旧数据?比如如果某个对象有一天存储自动删除吗?

另一种方法是添加一个带有日期的字段,然后提取并比较它以决定是否删除,但问题是 Realm 本身是否有一种方法可以实现这一目标

我不是在查找查询

问题在于,是否还有其他方法可以自动从 Realm 中移除旧对象,例如存储数据时的条件、参数、配置或 Realm 方法,而不仅仅是每次都进行比较很明显,通过查询,我们可以消除我们想要的任何对象。

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

链接问题(不是答案)的规范只是为了澄清这不是一个基于 Swift 的问题,并且乍一看不会将其标记为重复。


答案 1

添加一个包含日期的字段,并基于该字段查询要删除的字段

然后你可以做

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

编辑:

问题在于,是否还有其他方法可以自动从 Realm 中移除旧对象,例如存储数据时的条件、参数、配置或 Realm 方法,而不仅仅是每次都进行比较。

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

链接的基于 Swift 的答案也做了完全相同的事情。


答案 2

不,Realm 本身没有这样的功能。

您的替代方案很好,但我不建议使用后台服务来删除数据,因此请在查询时检查/删除数据。


推荐