如何从Realm数据库中选择第一个N元素。 现在,我使用此代码选择N个元素:
Realm.getDefaultInstance()
.where(MyObject.class)
.findAllSorted("myField", Sort.DESCENDING)
但是这个选择操作太长了。我需要SQL'LIMIT'操作模拟。
答案 0 :(得分:3)
你可以看看这个 https://github.com/realm/realm-java/issues/544
似乎领域结果是懒惰加载所以你不需要"限制"当使用领域时
答案 1 :(得分:2)
简单
int N=10; // whatever value you want
Realm mRealm=Realm.getDefaultInstance();
RealmResults<Example> list= mRealm.where(Example.class).findAll();
list.subList(0,N);
答案 2 :(得分:1)
我使用了限制方法, 您应该使用最新版本 classpath "io.realm:realm-gradle-plugin:5.8.0"
RealmResults<YourPOJOClass> realmResults = mRealm.where(YourPOJOClass.class).sort("createdTime").limit(10).findAll();
//here this record will be sorted by ascending order using schema name "createdTime"
//this will return the 10 rows only.
`
答案 3 :(得分:0)
可能重复因为我已在此处发布了解决方案:Limit Realm results
我找到了解决这个问题的方法,经过这么多天使用&#34;之间的#34;查询在官方文档https://realm.io/docs/java/latest
中找到如果你想获取前N个元素,只需将数字从,然后传递给字段名称,如下所示
realm.where(clazz).between("count",0,1000).findAll();
其中,
&#34; count&#34; =字段名称(即pojo中的变量名称)
&#34; 0&#34; =范围来自
&#34; 1000&#34; =范围
例如:上面的查询将首先从RealmResults获取0到1000。
注意:上述解决方案仅在您拥有行计数的唯一ID时才有效。在我的情况下,我在将值插入Realm之前手动插入计数值。