Google App Engine - 查询与过滤器说明

时间:2017-04-23 17:39:17

标签: google-app-engine datastore

我的模特:

 class User(ndb.Model):
    name = ndb.StringProperty()

以下两个查询之间在效率/成本/速度方面是否存在差异?

 u = User.query(User.name==name).get()

 u = User.query().filter(User.name==name).get()

我应该使用其中一个而不是另一个吗?我假设第二个更糟糕,因为它第一次得到整个User类查询集,然后应用过滤器?

1 个答案:

答案 0 :(得分:2)

两者之间的功能没有区别,所以你可以选择你最喜欢的。在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等同于前一个示例中的查询变量。