java - Google Cloud Datastore 过滤数据,其中包含列表中的项目

标签 java google-cloud-datastore datastore

在我们的谷歌云数据存储中,我们有一个存储字符串列表的属性(公司属性),当我们查询我们的数据存储时,我们希望将 Java 列表发送到数据存储 API 并获取公司属性至少包含的数据列表中的一项。我们当前的查询代码在下面,但是我们无法找到如何在此代码上设置列表过滤器。有人知道吗?

public List<MAExchangeNews> getExchangeNews(IExchangeController controller,int count, String offsetVal, List<String> relatedCompanySymbols) {
    List<MAExchangeNews> result = null;
    if (controller != null) {
        EntityQuery.Builder builder = Query.newEntityQueryBuilder();
        builder.setKind(KIND_NAME);
        builder.setLimit(count);
        builder.setOrderBy(OrderBy.desc(FIELD_NEWS_TIME));
        if (offsetVal != null) {
            builder.setStartCursor(Cursor.fromUrlSafe(offsetVal));
        }
        if (relatedCompanySymbols != null) {

//This is the area we want to add our filtering code        //builder.setFilter(PropertyFilter.Operator.GREATER_THAN_OR_EQUAL_VALUE);
        }

        Query<Entity> query = builder.build();

        QueryResults<Entity> resultList = datastore.run(query);
        result = entitiesToNews(controller,resultList);         
        if (result != null) {
            this.nextOffset = resultList.getCursorAfter().toUrlSafe();
        }           
    }

    return result;
}

我们想要实现的例子:

- Our DataStore Entities Company Properties :
  1. FROTO, KCHOL
  2. KCHOL, ALBRK
  3. AKBNK, GARAN
  4. ALBRK, ACSEL

- Our query List
  1. {KCHOL,GARAN}

- Expected Result:
  1. FROTO, KCHOL
  2. KCHOL, ALBRK
  3. AKBNK, GARAN

我认为我们需要的是一个包含查询或语句(如果可能),或者一个 in 查询。但我不知道我们如何使用 Google Cloud Datastore API 来实现它。

谢谢

最佳答案

我对java不熟悉。但谷歌云数据存储有点。 Google Cloud Datastore 有五种类型的过滤器(=<<=>>=) on query 所以你只能使用一个out of filter。

获取结果 1. {KCHOL,GARAN} 您可以尝试使用两个查询,第一个查询查找 KCHOl 的数据,第二个查询查找 GARAN 的数据并将其合并。

Google Cloud Datastore 中没有类似 In 的内容。 此指南可能有助于找到您的解决方案。

关于java - Google Cloud Datastore 过滤数据,其中包含列表中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57112484/

相关文章:

java - 用于 JUnit 测试的可配置邮件服务器模拟?

python - 计算 Python 中 GQL 查询给出的不同字符串的数量

java - 如何按添加位置从数据存储中获取条目? (Google 应用引擎和 JDO)

android - Java 使用什么来存储 GAE

android - 同步 SQLite 数据库和 Dropbox 数据存储

java - 同步ArrayList并发写入

java - 如何实例化 IOSDriver 以在当前 session 中访问其方法

无缘无故发生Java错误 "This method must return a result of type string"

java - 使用 Java,如何实例化 GAE 数据存储以便它可以与 GqlQuery 结合使用?