Запрос возвращает то, что вы ожидаете, все дочерние элементы, у которых есть указанный родительский элемент в любом месте их происхождения. Запрос выражает именно это, поэтому я сомневаюсь, что есть более простой способ сделать то же самое. Но App Engine продолжает добавлять функции и удивляет меня: -)
Возможно, вам нужно parent.key()
, я думаю, это зависит от того, используете ли вы Python или Java.
Кстати, не рекомендуется использовать ancestor-parent-child для моделирования отношений в ваших данных. Группы объектов существуют для включения транзакций, а не для использования в качестве «свободного» ReferenceProperty. parent-child должен быть деталью реализации низкого уровня, означающей, что «эти две сущности могут потребоваться изменить в одной транзакции», или, возможно, «я играю трюк с оптимизацией, который позволяет мне использовать свойства списка без необходимости загружать список в память, когда я получаю лицо ". Как правило, если не все сущности «принадлежат» одному и тому же пользователю, то они не должны быть связаны с родительскими и дочерними объектами, потому что связывание их таким образом вызывает конфликт, когда разные пользователи пытаются изменить их через разные узлы хранилища данных :
http://code.google.com/appengine/docs/python/datastore/keysandentitygroups.html#Entity_Groups_Ancestors_and_Paths