Session.sessionType
是StringProperty(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
答案 0 :(得分:0)
!=(不等于)和IN(成员)操作由。实现 使用OR运算组合其他过滤器。第一个,
property != value
实现为
(property < value) OR (property > value)
由于您使用的是重复的StringProperty,如果sessionType
中的任何字符串不等于request.sessionType
,则该实体将在查询中返回。