簡體   English   中英

使用GroupBy進行Realm.io查詢

[英]Realm.io Query with GroupBy

我想按月對一些帳戶進行分組,我可以使用Realm.io做到這一點嗎?

public class Account extends RealmObject {
.....
 private Date date;
}

RealmResults accounts = realm.where(Account.class)
.beginGroup()
.equalTo("date", "MONTH(date)")//<----- wrong code
.endGroup()
.findAll();

謝謝

Realm還不支持GroupBy。 另外請注意beginGroup()實際上與括號相同。 因此,您的查詢實際上被解釋為:

// SQL pseudo code
SELECT * FROM Account WHERE (date = MONTH(date))

在Realm中,您必須執行以下操作才能選擇一個月:

// Between is [ monthStart, monthEnd ] 
Date monthStart = new GregorianCalendar(2015, 5, 1).getTime();
Date monthEnd = new GregorianCalendar(2015, 6, 1).getTime() - 1;
accounts = realm.where(Account.class).between("date", monthStart, monthEnd).findAll();

或類似的東西來檢測一個月的變化

// pseudo code. You might want to use Calendar instead
accounts = realm.where(Account.class).findAllSorted("date")
Iterator<Account> it = accounts.iterator();
int previousMonth = it.next().getDate().getMonth();
while (it.hasNext) {
  int month = it.next().getDate().getMonth();
  if (month != previousMonth) {
    // month changed
  }
  previousMonth = month;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM