Reputation: 50362
What is a good way to get the number of query result when using NDB on google app engine?
Attempted this:
query = NDB_Model.query(NDB_Model.some_property == some_value)
if len(query) > 0: # <-- this throws and exception
entity = query[0]
I apologize that this is probably a very simple question, but it was not clear to me from the docs.
Upvotes: 5
Views: 4735
Reputation: 1624
To get the result count of a ndb query you can simply use count()
:
query = NDB_Model.query(NDB_Model.some_property == some_value)
if query.count() > 0:
entity = query[0]
Upvotes: 3
Reputation: 70552
It seems like you just want to get the first entity from your query. That's what query.get()
is for.
query = NDB_Model.query(NDB_Model.some_property == some_value)
entity = query.get()
if entity is not None:
# Do stuff
From the docs:
Returns the first query result, if any (otherwise None). This is similar to calling q.fetch(1) and returning the first item of the list of results.
In a more general form, there's query.fetch(n)
where n
is the maximum number of entities to fetch. It returns a list, so you could easily check len()
on that.
Upvotes: 12