【问题标题】:Finding Google DataStore "not equal to empty string" correct query syntax查找 Google DataStore“不等于空字符串”正确的查询语法
【发布时间】:2016-08-25 12:32:06
【问题描述】:

我有一个 Google App Engine 项目,该项目使用 DataStore 进行后端数据托管。

我正在尝试创建一个简单的查询来查询两个属性,其中一个是“不等于”空字符串。

这是我想要达到的目标:

query = Race.query(ndb.AND(Race.processing == True, Race.assignment_id != ''))
races = query.fetch(limit)

但是,这不尊重!=。我从文档中知道!= 本质上是>< 运算符的组合,但我不知道如何将其应用于空字符串。

以前有人试过吗? 如何查询两个属性,其中一个是“不等于空字符串”?

  • Race.processing == True
  • Race.assignment_id != ''

【问题讨论】:

  • 为什么这被否决了?这是一个合法的问题,几乎没有关于它的文档。

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


【解决方案1】:

通过我的远程 API 尝试过:

> x = User(first_name='test', last_name='')
> x.put()
Key('User', 5965989720096768)
> User.query(User.first_name=='test', User.last_name=='').count()
1
> User.query().count()
219L
> User.query(User.last_name!='').count()
218
> User.query(User.last_name=='').count()
1

按预期工作,仔细检查您的空字符串实际上不是空值

【讨论】:

  • 像魅力一样工作。看起来我误解了AND 运算符的使用。
猜你喜欢
  • 2018-12-30
  • 2017-03-28
  • 1970-01-01
  • 2014-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多