Google App Engine - 查询与过滤器说明
Google App Engine - query vs. filter clarification
我的模特:
class User(ndb.Model):
name = ndb.StringProperty()
以下两个查询在efficiency/cost/speed方面有什么区别吗?
u = User.query(User.name==name).get()
u = User.query().filter(User.name==name).get()
我应该用其中一个代替另一个吗?我认为第二个更糟糕,因为它首先获取整个 User class 查询集然后应用过滤器?
两者在功能上没有区别,所以你可以选择你最喜欢的。在 google documentation 上,他们展示了这两个示例:
query = Account.query(Account.userid >= 40, Account.userid < 50)
和
query1 = Account.query() # Retrieve all Account entitites
query2 = query1.filter(Account.userid >= 40) # Filter on userid >= 40
query3 = query2.filter(Account.userid < 50) # Filter on userid < 50 too
和状态:
query3 is equivalent to the query variable from the previous example.
我的模特:
class User(ndb.Model):
name = ndb.StringProperty()
以下两个查询在efficiency/cost/speed方面有什么区别吗?
u = User.query(User.name==name).get()
u = User.query().filter(User.name==name).get()
我应该用其中一个代替另一个吗?我认为第二个更糟糕,因为它首先获取整个 User class 查询集然后应用过滤器?
两者在功能上没有区别,所以你可以选择你最喜欢的。在 google documentation 上,他们展示了这两个示例:
query = Account.query(Account.userid >= 40, Account.userid < 50)
和
query1 = Account.query() # Retrieve all Account entitites
query2 = query1.filter(Account.userid >= 40) # Filter on userid >= 40
query3 = query2.filter(Account.userid < 50) # Filter on userid < 50 too
和状态:
query3 is equivalent to the query variable from the previous example.