我的模特:
class User(ndb.Model):
name = ndb.StringProperty()
以下两个查询之间在效率/成本/速度方面是否存在差异?
u = User.query(User.name==name).get()
u = User.query().filter(User.name==name).get()
我应该使用其中一个而不是另一个吗?我假设第二个更糟糕,因为它第一次得到整个User类查询集,然后应用过滤器?
答案 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等同于前一个示例中的查询变量。