Querying a repeated property by count in NDB
Asked Answered
U

2

10

Is there an efficient mechanism for querying by the number of items in a repeated property in NDB?

I'd like to do something like:

Class.query(class.repeated_property.count == 2)

but of course this doesn't work.

Unimproved answered 21/7, 2012 at 17:40 Comment(0)
S
25

Specifically, you can use ComputedProperty to automatically store the count, e.g.

class X(ndb.Model):
  prop = ndb.StringProperty(repeated=True)
  prop_count = ndb.ComputedProperty(lambda e: len(e.prop))

X.query(X.prop_count == 2)
Seductive answered 22/7, 2012 at 19:38 Comment(0)
C
3

There is no len query semantic in GQL, you will need to have a sperate property for the length of the list and query on it.

Carbon answered 21/7, 2012 at 19:42 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.