3
votes

In App Engine NDB, I am querying entities that have a repeated property. I would like to order the result by the length of the array representing that property.

What I wish I could do:

Entity.query(...).order(len(Entity.repeatedProp))
2
You'll have to do that in python code after the fact using sorted - Josh J

2 Answers

3
votes

You'll need to add an ndb.IntegerProperty() to your entity where you will store the length of the repeated property. Every time you change your repeated property, you'll need to update the stored length. Then you sort based on that stored length.

You could probably use a computed property, but I've never used one of those so I'm not sure.

0
votes

Depending on how many entities are you sorting you can sort it by code.