【问题标题】:projection query for ndb.Expando (1.7.6)ndb.Expando (1.7.6) 的投影查询
【发布时间】:2013-03-31 22:06:12
【问题描述】:

以下查询仅返回键,即使我想返回属性 Name,它是 ndb.Expando 实体的 ndb.StringProperty。

cls.query().order(cls.Name).fetch(100, projection=[cls.Name]) #.. 什么?

如果我做类似cls.query().order(cls.Name).fetch(100) 的事情

问题,我可以在 ndb.Expando 上使用投影吗?我什至试过 cls.query().order(cls.Name).fetch(100, projection=[ndb.GenericProperty('Name')]) 并仅获取结果中其他属性的键和空值。

我在 1.7.6。感谢您的帮助。

【问题讨论】:

  • 你的类定义到底是什么?您是否得到了异常或只是意外的结果?

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


【解决方案1】:

是的,你可以。他们都默认索引。只需将它们定义为字符串即可。

cls.query().fetch(100, projection=['name'])

# next one also will work
cls.query().fetch(100, projection=[ndb.GenericProperty('name')])

这仅适用于没有按通用属性排序的情况。

【讨论】:

  • 是的,我认为删除 order() 可以。为什么我不能使用订单?
  • 不确定,但我认为您只能通过显式属性订购。
  • 很奇怪。我有另一个更复杂的 ndb.expando 实体,我可以应用订单。
猜你喜欢
  • 2012-12-28
  • 1970-01-01
  • 1970-01-01
  • 2020-09-24
  • 2019-01-17
  • 2014-05-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多