2014-02-06 38 views
0

如何更有效地在appengine中實現「不startwith」查詢?Appengine中的「Not Start With」查詢

它應該是這樣的:

Select * from Table A where name not like 'CON%'. 

數據存儲包含100K左右的實體和實體的40%是startwith CON。對此表執行迭代以獲取每個實體名稱併爲它們添加一些任務。我需要忽略那些實體名稱,起始於CON

+0

執行兩個查詢,一個以 '名< 「CON」',另一個爲 '名稱> 「CON」',並結合的結果。 –

+0

@JasonHall正如我所說,Datastore包含大約100K實體。在光標的幫助下,我重複了這些結果。 –

+0

這是一個或一個你需要做的事情嗎? –

回答

1

使用filter<>=

import itertools 
objs = itertools.chain(
    Model.all().filter('name <', 'CON'), 
    Model.all().filter('name >=', 'COO') 
) 
for obj in objs: 
    # do something with obj 
+0

獲取錯誤:'BadFilterError:invalid filter:每個查詢只有一個屬性可能有不等式過濾器(<, <=, > =,>)。' –

+0

@Nijo,已更新答案。 – falsetru

+0

謝謝。 Aswer是一致的。但正如我所說,Datastore包含大約10萬個實體。在光標的幫助下,我重複了這些結果。那麼我如何實現這個? –