john pfeiffer
  • Home
  • Categories
  • Tags
  • Archives

google app engine datastore like query workaround

Google BigTable does not directly support a "LIKE" string% matching but workarounds:

db.GqlQuery("SELECT * FROM MyModel WHERE prop >= :1 AND prop < :2", "abc", u"abc" + u"\ufffd")

q = db.Query( MyEntity ).filter( 'active =', isActive ).filter( 'name >=', targetNamePrefix ).filter( 'path <', targetNamePrefix + '\uFFFD' ).run()

NOTE: Google Datastore also does not support multiple inequality filters so filter( 'age >' ).filter( 'salary <' ) will fail

BadFilterError: invalid filter: Only one property per query may have inequality filters (<=, >=, <, >)..

  • « Detect dmidecode vmware
  • google app engine urlfetch xml pandora activity feed »

Published

Jul 10, 2013

Category

python-appengine

~77 words

Tags

  • appengine 18
  • datastore 2
  • engine 12
  • google 18
  • like 2
  • python 180
  • query 7
  • workaround 3