2017-04-23 65 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