I have this structure: Books that have Chapters (ancestor=Book) that have Pages (ancestor=Chapter)
It is clear for me that, to search for a Chapter by ID, I need the boo
You can do this in one go by doing an ancestor query, rather than a get:
chapter_key = ndb.Key('Book', long(bookId), 'Chapter', long(chapterId)) page = Page.query(Page.pageNumber==pageNumber, ancestor=chapter_key)