Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine Go的谷歌应用程序引擎数据存储没有!=滤波器_Google App Engine_Go - Fatal编程技术网

Google app engine Go的谷歌应用程序引擎数据存储没有!=滤波器

Google app engine Go的谷歌应用程序引擎数据存储没有!=滤波器,google-app-engine,go,Google App Engine,Go,我最近在为go搞乱GAE,发现它错过了基本功能!=(不等于)其数据存储API中的过滤器 它也没有“或”条件操作数 有谁能告诉我如何过滤不等于某个值的数据吗?即使是有“!=”过滤器的语言也会将其分解为两个不平等过滤器(一个>和一个“测试”) 与…的结果合并 从参数=”,minBirthYear)。 滤器("生日我认为这是目前唯一的方法。因为它缺少“或”操作数,我不得不引导两个db查询来完成这项工作,这并不好。因为它缺少这些基本操作数,我不得不建议不要在Go项目中使用GAE。@Keyang是的,它

我最近在为go搞乱GAE,发现它错过了基本功能!=(不等于)其数据存储API中的过滤器

它也没有“或”条件操作数


有谁能告诉我如何过滤不等于某个值的数据吗?

即使是有“!=”过滤器的语言也会将其分解为两个不平等过滤器(一个>和一个“测试”)

与…的结果合并

从参数<“测试”的表格中选择*


不太理想,但考虑到平台的局限性……我认为这是您唯一的选择。

从您链接的页面中,实际上有一个如何进行此类查询的示例

发件人:

不等式筛选器最多限于一个属性

为了避免扫描整个索引表,查询机制依赖于索引中所有查询的潜在结果彼此相邻。为了满足此约束,单个查询可能不使用不等式比较(=)在多个属性的所有筛选器上。例如,以下查询有效,因为两个筛选器应用于同一个属性:

q:=datastore.NewQuery(“Person”)。
过滤器(“生日>=”,minBirthYear)。

滤器("生日我认为这是目前唯一的方法。因为它缺少“或”操作数,我不得不引导两个db查询来完成这项工作,这并不好。因为它缺少这些基本操作数,我不得不建议不要在Go项目中使用GAE。@Keyang是的,它仍然是实验性的。我个人会等到它们变得更正式:/An im重要的一点是,当前OR和!=完全是通过组合查询在客户端库中实现的。因此,如果您实现自己的OR运算符,它将与“内置”运算符完全相同对于其他语言的库。我不会让这种情况影响到您使用的语言。我在NodeJS中也遇到了同样的问题。因为没有“或”操作符,所以必须在单独的查询中收集结果,然后再进行组合。以下是我如何通过在NodeJS中重新发明轮子来实现“或”条件的一些细节。我认为它试图y不平等过滤器,它们是>,=,不,您可以!=通过使用
datastore.NewQuery(“P”).Filter(“Prop>”,key)。Filter(“Prop datastore.NewQuery(“P”).Filter(“Prop>”,key)。Filter(“Prop>”)
q := datastore.NewQuery("Person").
        Filter("BirthYear >=", minBirthYear).
        Filter("BirthYear <=", maxBirthYear)