从GAE数据存储区中选择单个不同的列并按日期排序

时间:2017-08-24 06:50:10

标签: java google-app-engine google-cloud-datastore jdoql

我的数据存储区包含以下结构

| id                                   | date          | property   |
|:-------------------------------------|--------------:|:---------: |
| 78c94c24-8895-11e7-bb31-be2e44b06b34 | 1503556140000 | 9184675510 |   
| 78c94c24-8895-11e7-bb31-be2e44b06b34 | 1503469740000 | 9184675510 |
| 78c94c24-8895-11e7-bb31-be2e44b06b34 | 1504074540000 | 9184675510 |
| 7bbb1056-8896-11e7-bb31-be2e44b06b34 | 1503556140000 | 9184675510 |
| 836ea8a8-8896-11e7-bb31-be2e44b06b34 | 1498804140000 | 9184675510 |
| 836ea8a8-8896-11e7-bb31-be2e44b06b34 | 1501396140000 | 9184675510 |

我正在尝试从数据存储过滤关于'property'的不同ID,并使用以下JDO查询按日期排序

String queryString = SELECT DISTINCT id FROM com.test.pkg.jdo.TestJDO WHERE property == '9184675510' ORDER BY date DESC                      
Query query = persistenceManager
                    .newQuery( queryString );
query.setRange(0,10);
List<String> response = query.execute();

我已将范围设置为10以获取10个不同的ID,但即使数据存储包含此过滤器的更多记录,查询响应也会返回小于10的ID。

查询是否有可能只扫描10条记录,并在考虑到已设置范围的情况下返回不同的ID。 有没有其他方法可以使用低级API来完成此查询?

任何想法都会有所帮助。

0 个答案:

没有答案