2016-12-26 3 views
0

사용자가 최근에 본 항목을 저장하는 테이블 인 RecentViewItem이 있다고 가정합니다. 다른 모든 항목을 삭제하여 처음으로 확인한 항목 10 개를 개만 유지하고 싶습니다. 내 쿼리는 다음과 같다 :영역에서 처음 n 개의 행을 삭제하는 방법

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

답변

0
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

당신이'deleteAllFromRealm() '을 호출 할 수있는'RealmResults'를 얻을 수있는 쿼리를 정의 할 수있는 인덱스를 업데이트 할 수 없다면, 무언가를 찾을 수 없을 것입니다. – EpicPandaForce

+0

나는 이해하지 못했습니다. 귀하의 생각을 정확히, 어쩌면 당신이 처음 n 개의 행을 가져올 수있는 열을 원하는 및 deleteAllFromRealm() 호출하십시오. plz를 정교하게한다면 더 좋을 것입니다. –