不等式查询无效ndb

时间:2016-01-09 19:23:01

标签: google-cloud-datastore app-engine-ndb

Session.sessionTypeStringProperty(repeated=True)

当我执行此查询时:

sessions_no_type = Session.query(Session.sessionType == request.sessionType)

一切似乎都有效,我只获得那些request.sessionType

的会话

但是当我尝试时:

sessions_no_type = Session.query(Session.sessionType != request.sessionType)

我收回所有会话(无论request.sessionType

这可能是什么问题?即使是文档也有类似的例子,但它对我不起作用。

尝试此版本时也是如此:

filter = ndb.query.FilterNode("sessionType", "!=", request.sessionType)

当测试相等性时,它会正确返回所有内容,但不等式情况只会消除具有ONE sessionType的Session对象,该对象等于传递的(请求)sessionType

1 个答案:

答案 0 :(得分:0)

The != and IN Operations的文档说:

  

!=(不等于)和IN(成员)操作由。实现   使用OR运算组合其他过滤器。第一个,

     

property != value

     

实现为

     

(property < value) OR (property > value)

由于您使用的是重复的StringProperty,如果sessionType中的任何字符串不等于request.sessionType,则该实体将在查询中返回。

相关问题