google-app-engine - 如何在 NDB 查询中将 python 日期与 DateTimeProperty 进行比较

标签 google-app-engine python-2.7 app-engine-ndb

我在尝试使用 python 日期对象过滤 NDB 查询中的 DateTimeProperty 时遇到了一些困难。我意识到 DateTimeProperty (some_date) 没有日期属性,但是我可以做一些简单的事情,如下所示:

cls.query(supplied_date == cls.some_date.date).fetch()

最佳答案

不更改模型是不可能的。

最简单的选择是在日期时间属性上使用两个不等式过滤器(> 日期 00:00 和 <= 日期 23:59),但是您不能在查询中使用任何其他不等式。

(一个?)另一个选项是引入第二个属性,其中包含您过滤所依据的日期值:

class YourModel(ndb.Model):
  some_datetime = ndb.DateTimeProperty()
  some_date = ndb.ComputedProperty(lambda self: self.some_datetime.date)

如果您只需要按日期过滤,那么您的日期时间属性可以有 indexed=False,否则您将需要额外索引的成本。

关于google-app-engine - 如何在 NDB 查询中将 python 日期与 DateTimeProperty 进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15388245/

相关文章:

python-2.7 - Pygame 会在显示器外用一个矩形 blit Sprite 吗

python - 使用 pandas 按天对数据框进行分组

python-2.7 - python多处理socket.error : [Errno 111] Connection refused?

python - 在 Google App Engine 中使用 @ndb.tasklet 或 @ndb.synctasklet

java - 如何导出 Google Storage 中 Cloud SQL 数据库的备份?

android - 云 java.io.FileNotFoundException : WEB-INF/logging. 属性(没有这样的文件或目录)

python-2.7 - NDB JsonProperty 和 Cloud Datastore 库兼容性

google-app-engine - Google App Engine Datastore (ndb) 中的多对多关系

node.js - 云任务 - 创建任务 - 错误 : No connection established, 代码:14

python - Google App Engine 静态文件 GET 404