如何删除领域的前n行

问题描述:

假设有一个表RecentViewItem它存储用户最近查看的项目。我想通过删除所有其他项目只保留第一个10个最近查看的项目。我的查询是这样的:如何删除领域的前n行

RealmResults<RecentViewItem> results = 
    realm.where(RecentViewItem.class) 
     .findAllSorted("updatedAt", Sort.DESCENDING); 
// What to do next ? 

RealmResults<RecentViewItem> results = realm.where(RecentViewItem.class).findAllSorted("updatedAt", Sort.DESCENDING); 
for(int i = 0, size = results.size(); i < 10 && i < size; i++) { 
    RecentViewItem recentViewItem = results.get(i); 
    recentViewItem.deleteFromRealm(); 
} 
+0

有关删除第一个1000或假设10^5行如何?其实我正在寻找没有循环的答案。 –

+0

你不会找到一个loopless的答案,除非你有一个你可以更新的索引,你可以定义一个查询,通过这个索引你可以获得一个'RealmResults',你可以调用'deleteAllFromRealm()' – EpicPandaForce

+0

我不明白你的想法确切地说,也许你想要一个只能得到前n行的列并调用deleteAllFromRealm()。如果你详细说明PLZ会更好。 –