首页 > 解决方案 > 具有一个字段不同的投影查询和基于另一个投影字段的查询顺序

问题描述

我有几个过滤器并投影了两个字段,我试图根据一个投影字段查询不同的字段,并根据另一个投影字段的顺序查询,投影正在工作,但我没有得到不同的值。

代码:

List <Foo> fooList = ofy().load()
                          .type( Foo.class )
                          .project( "field1" )
                          .distinct(true)
                          .project( "field2" )
                          .order( "field2" )
                          .filter(filters)
                          .limit( 1000 )
                          .list(); 

标签: google-cloud-datastoreobjectify

解决方案


所述问题取决于需要考虑的几个因素。此代码示例没有提供足够的信息来回答您的问题。您使用的是什么类型的数据集?您使用的是最新的 Java 版本吗?是否导入了正确的包?

将 Objectify 版本更新到支持投影查询和不同操作的 5.0.5+ 非常重要。 使用objectify区分

编辑:在回答你的评论

您已将一个文件导入到您正在测试查询的数据存储中。我指的是您正在使用和测试您的查询的数据。您正在处理多少数据以表明此问题可能会出现?也许您应该尝试使用较小的数据集文件进行测试。数据点的数量越多,您在输出结果中遇到差异或不一致的可能性就越大。

有不同类型的数据集。你在使用结构化数据吗?您是否使用时间戳数据,它具有时间顺序的概念,定义每个点都被捕获或收集?您可以使用机器数据或大数据。您需要考虑您正在处理的数据类型。这可能会影响通过您实现的功能(在本例中为不同的值)显示和记录数据的方式。

另外,您在什么环境下运行查询?


推荐阅读