我想查詢前100位用戶在過去一週(日期字段)中已登錄的點數得分方面的數據存儲。使用過濾器進行GAE數據存儲查詢並使用objectify進行排序
List<User> users = ofy().load().type(User.class)
.filter("date >", date).order("date")
.order("-points").limit(100).list();
它似乎忽略了點的最終排序並返回按日期排序的列表。 如果我刪除日期過濾器並進行排序,那麼我可以很好地按列表排序,但包括一週以前登錄的用戶。
我仔細閱讀了文檔,它似乎允許包含不等式過濾器和多種排序的查詢。
任何想法我做錯了什麼?
下面是從文檔的一些相關注意事項:
,因爲App Engine數據存儲執行查詢的方式,如果查詢指定一個屬性不等過濾和排序在其他屬性命令,在使用的屬性不平等過濾器必須在其他屬性之前進行排序。
...如果查詢指定一個或多個不等式過濾器以及一個或多個排序順序,則第一個排序順序必須引用不等式過濾器中指定的相同屬性。
謝謝!我仍然不明白爲什麼你不得不明確提到日期?拋出的異常讓我感到困惑,直到我仔細閱讀文檔。 – Mike
我認爲選項2是我的需求最實用的解決方案。 – Mike