2017-04-23 47 views
0

我的模型:谷歌应用程序引擎 - 查询与过滤澄清

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

是否有以下两个查询之间的效率/成本/速度方面有什么区别?

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

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

我应该使用其中之一吗?我认为第二个更糟,因为它首先获取整个User类查询集,然后应用过滤器?

回答

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相当于从前面的示例查询变量。

+0

我知道在功能上没有区别。我只是想确认在成本/速度等方面没有差别? – JK140

+0

@ JK140,没有任何区别。 –

+0

非常感谢! – JK140