如何更有效地在appengine中實現「不startwith」查詢?Appengine中的「Not Start With」查詢
它應該是這樣的:
Select * from Table A where name not like 'CON%'.
數據存儲包含100K左右的實體和實體的40%是startwith CON
。對此表執行迭代以獲取每個實體名稱併爲它們添加一些任務。我需要忽略那些實體名稱,起始於CON
。
如何更有效地在appengine中實現「不startwith」查詢?Appengine中的「Not Start With」查詢
它應該是這樣的:
Select * from Table A where name not like 'CON%'.
數據存儲包含100K左右的實體和實體的40%是startwith CON
。對此表執行迭代以獲取每個實體名稱併爲它們添加一些任務。我需要忽略那些實體名稱,起始於CON
。
使用filter
與<
,>=
:
import itertools
objs = itertools.chain(
Model.all().filter('name <', 'CON'),
Model.all().filter('name >=', 'COO')
)
for obj in objs:
# do something with obj
獲取錯誤:'BadFilterError:invalid filter:每個查詢只有一個屬性可能有不等式過濾器(<, <=, > =,>)。' –
@Nijo,已更新答案。 – falsetru
謝謝。 Aswer是一致的。但正如我所說,Datastore包含大約10萬個實體。在光標的幫助下,我重複了這些結果。那麼我如何實現這個? –
執行兩個查詢,一個以 '名< 「CON」',另一個爲 '名稱> 「CON」',並結合的結果。 –
@JasonHall正如我所說,Datastore包含大約100K實體。在光標的幫助下,我重複了這些結果。 –
這是一個或一個你需要做的事情嗎? –