簡體   English   中英

GQL查詢,其中字段不為空

[英]GQL query where field is not null

我有一個稱為“帳戶”的實體類型。 字段之一是一個名為selfie的字符串,它基本上是用戶上傳的selfie的URL。 我想為有自拍照的用戶獲取數據(因此,如果用戶沒有自拍照,則不應將其包含在結果集中)。 我有以下查詢。 但它不起作用,因為我將"NULL"作為字符串。 正確的方法是什么? 同樣,我只希望擁有自拍照的用戶。

Filter selfie = new FilterPredicate("selfie", FilterOperator.GREATER_THAN, "NULL");
Query query = new Query(Account.class.getSimpleName()).setFilter(selfie);
FetchOptions options = FetchOptions.Builder.withLimit(30);
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
QueryResultList<Entity> entities = datastore.prepare(query).asQueryResultList(options);

我也對在App-Engine上執行此操作的JDO / JPA方法持開放態度(但必須在App-Engine上工作)。

這應該像

Filter selfie = new FilterPredicate("selfie", FilterOperator.NOT_EQUAL, null);

您實際在其中傳遞Java空值(不是字符串)並使用不等於進行過濾的方式(請參閱https://stackoverflow.com/a/22200137 )。

就個人而言,我一直在使用JDO進行數據存儲管理,這有其優點和缺點。 讓我知道您是否也想使用JDO解決方案。 干杯!

經過https://console.cloud.google.com/datastore/entities/query/gql上的反復試驗

我發現此表達式適用於IS NOT NULL:

> NULL

例:

從customer_id> NULL的狀態中選擇*

我尚未在具有負值的字段上對此進行過測試。

暫無
暫無

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

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