運行查詢時,新的靈活環境數據存儲接口似乎不支持IN
操作。我希望我錯了,如果是這樣,在Datastore的新Java接口中如何使用IN
運算符?使用IN運算符進行數據存儲查詢
0
A
回答
1
類似於 - WHERE color IN('RED', 'BLACK')
的查詢,Datastore(服務器端)不支持該查詢。 OR
運營商也是如此(例如WHERE color='RED' OR color='BLACK'
)。某些客戶端API通過將查詢拆分爲多個併合並每個查詢的結果來添加了此功能。新的google-cloud-java API不支持這一點。目前,您必須針對IN
子句中的每個值運行多個查詢併合並結果。
0
下面是來自documentation一個例子:
如果你想設置一個查詢不止一個過濾器,你必須使用
CompositeFilter
,這需要至少兩個過濾器。
Filter tooShortFilter = new FilterPredicate("height", FilterOperator.LESS_THAN, minHeight);
Filter tooTallFilter = new FilterPredicate("height", FilterOperator.GREATER_THAN, maxHeight);
Filter heightOutOfRangeFilter = CompositeFilterOperator.or(tooShortFilter, tooTallFilter);
Query q = new Query("Person").setFilter(heightOutOfRangeFilter);
您還可以使用.and()
。這裏的代碼用於Java 7.對於Java 8,您可以在上面引用的文檔中找到相應的代碼。我希望有所幫助。
現在到IN
。儘管最近我還沒有自己嘗試過,但目前的文檔指出,仍然可以作爲運營商使用。根據它,像下面的代碼應該工作:
Filter propertyFilter = new FilterPredicate("height", FilterOperator.IN, minHeights);
Query q = new Query("Person").setFilter(propertyFilter);
或者,你可以使用Google GQL。它將允許您編寫類似SQL的語法,您可以在其中使用in(...)
。
相關問題
- 1. 如何使用「IN」運算符緩存數據庫查詢?
- 2. 谷歌應用程序引擎數據存儲使用「in」運算符進行查詢
- 3. 使用IN運算符緩慢查詢
- 4. 使用IN運算符的子查詢
- 5. SQL IN運算符查詢
- 6. 使用IN運算符與存儲過程參數
- 7. GAE數據存儲中的查詢出錯或運算符
- 8. MVC6 - 使用存儲過程進行數據查詢
- 9. 使用like運算符執行查詢
- 10. 存儲和使用算術運算符
- 11. DataTable.Select使用IN運算符
- 12. 使用While循環和Between運算符進行查詢?
- 13. 使用AND或OR運算符進行休眠標準查詢
- 14. 使用IN運算符多選擇MySqL查詢?
- 15. 使用MongoDB「$ in」運算符的Javascript查詢生成器
- 16. 使用$ in運算符來查詢保持命令的mongodb
- 17. 在動態查詢中使用「IN」運算符
- 18. Java EE沒有使用IN運算符編譯查詢
- 19. 使用IN運算符優化MySQL查詢
- 20. LINQ to SQL,與IN運算符一起使用子查詢
- 21. 如何在動態查詢中使用IN運算符
- 22. Zend_Db_Select使用UNION和IN運算符查詢
- 23. oracle查詢使用IN運算符選擇值
- 24. 在子查詢中使用IN運算符與組
- 25. Rails 3使用SQL IN和SQL OR運算符的ActiveRecord查詢
- 26. 如何使用hstore進行IN查詢?
- 27. 使用NOT IN進行查詢優化
- 28. 如何在laravel查詢中使用IN運算符(eleqouent和原始查詢)?
- 29. 使用'IN'運算符將SQL select查詢轉換爲elasticsearch搜索查詢
- 30. 在運算符中使用mongodb $ in來使用數組陣列進行搜索
或者在可能的情況下使用批處理查詢而不是查詢。 –