我有一个用户模型, lastname 属性未编入索引。我希望在投影查询中使用姓氏。
class User(ndb.Model):
firstname = ndb.StringProperty()
lastname = ndb.StringProperty(indexed=False)
role = ndb.StringProperty()
activated = ndb.BooleanProperty()
由于lastname未编入索引,我无法将其用于投影查询。所以,我在索引中包含 lastname
lastname = ndb.StringProperty()
对于投影查询(也提取姓氏)我使用以下查询:
users1 = User.query().filter(User.activated == True).order(User.firstname).fetch(limit=10, offset=10, projection=[User.firstname, User.role, User.lastname])
此查询也是为了获取投影查询中的姓氏。此查询未获取任何用户列表
如果我使用以下查询(没有提取姓氏):
users = User.query().filter(User.activated == True).order(User.firstname).fetch(limit=10, offset=10, projection=[User.firstname, User.role])
这似乎工作正常并给我预期的输出。
我认为这似乎是一个错误或者需要很多的时间来更新索引(我不这么认为)。我的数据集包含大约1024个实体。 />
我在gae http://bugtestingg.appspot.com/上创建了一个示例应用程序,用于演示行为
这是我的index.yaml文件
indexes:
- kind: User
properties:
- name: activated
- name: firstname
- name: role
- kind: User
properties:
- name: activated
- name: firstname
- name: lastname
- name: role
答案 0 :(得分:6)
您需要重新放置()那些已存在的实体。