【发布时间】:2015-12-15 03:39:54
【问题描述】:
我的 Resource 类的模型如下:
class Resource(ndb.Model):
name = ndb.StringProperty()
availability = ndb.StructuredProperty(Availability, repeated=True)
tags = ndb.StringProperty(repeated=True)
owner = ndb.StringProperty()
id = ndb.StringProperty(indexed=True, required=True)
lastReservedTime = ndb.DateTimeProperty(auto_now_add=False)
startString = ndb.StringProperty()
endString = ndb.StringProperty()
我想提取所有者等于某个字符串的记录。 我已经尝试了以下查询。它不会给出错误,但也不会返回任何结果。
Resource.query(Resource.owner== 'abc@xyz.com').fetch()
根据我的理解,如果列具有重复值,则不应对其编制索引,这就是不编制所有者索引的原因。如果我错了,请纠正我。
谁能帮我弄清楚如何实现 where 子句类型的功能?
感谢任何帮助!谢谢!
【问题讨论】:
-
您确定有
Resource实体的所有者属性等于'abc@xyz.com'?据我所知,这对我来说是正确的。 -
@mgilson:嘿!是的,我确信有些记录应该与该值匹配。事实上,我的数据存储中唯一的记录是这个所有者的记录,当我从 DS 中提取所有记录(如 select * 语句)时,我能够正确检索所有记录。
-
试试
Resource.gql("WHERE owner = :1", 'abc@xyz.com').fetch()