Siguiendo las referencias de tipos desconocidos en NDB

Estoy en el proceso de escribir mi primer servicio web RESTful sobre GAE y el tiempo de ejecución de Python 2.7; Comencé a usar la nueva API ndb de Guido.

Sin embargo, no estoy seguro de cómo resolver un caso particular sin la función de referencia inversa implícita de la API de db original. Si el agente de usuario solicita un recurso en particular y esos recursos se eliminan en un grado:

host / api / kind / id? depth = 2

¿Cuál es la mejor manera de descubrir una colección relacionada de entidades del "uno" en una relación de uno a muchos, dado que el tipo de entidad relacionada se desconoce en el momento del desarrollo?

No puedo usar una consulta de reemplazo como se describe en unaconsulta previa del SO Debido a esta última restricción. El hecho de que mi modelo sea definible en tiempo de ejecución (y por lo tanto no esté codificado) me impide usar una consulta para filtrar las propiedades para las claves coincidentes.

Las consultas de Ancestor y de otro tipo no están disponibles debido a la limitación del almacén de datos que me impide filtrar en una propiedad sin el tipo especificado.

Hasta ahora, la única idea que he tenido (más allá de volver a la db api) es usar una transacción entre grupos para escribir mi propia referencia en el "one", ya sea actualizando una ndb.StringProperty (repeat = True) que contiene todos los tipos relacionados cuando se introduce una entidad de un tipo nuevo o simplemente manteniendo una lista de claves en "one" ndb.KeyProperty (repeat = True) cada vez que se escribe una entidad relacionada "many" en el almacén de datos.

Espero que alguien más experimentado que yo pueda sugerir un mejor enfoque.

Dada la sugerencia de jmort253, intentaré aumentar mi pregunta con un ejemplo concreto adaptado de los documentos:

class Contact(ndb.Expando):
    """ The One """

    # basic info
    name = ndb.StringProperty()
    birth_day = ndb.DateProperty()

    # If I were using db, a collection called 'phone_numbers' would be implicitly 
    # created here.  I could use this property to retrieve related phone numbers 
    # when this entity was queried.  Since NDB lacks this feature, the service 
    # will neither have a reference to query nor the means to know the 
    # relationship exists in the first place since it cannot be hard-coded.  The
    # data model is extensible and user-defined at runtime; most relationships
    # will be described only in the data, and must be discoverable by the server.
    # In this case, when Contact is queried, I need a way to retrieve the
    # collection of phone numbers.

    # Company info.
    company_title = ndb.StringProperty()
    company_name = ndb.StringProperty()
    company_description = ndb.StringProperty()
    company_address = ndb.PostalAddressProperty()

class PhoneNumber(ndb.Expando):
    """ The Many """

    # no collection_name='phone_numbers' equivalent exists for the key property
    contact = ndb.KeyProperty(kind='Contact')
    number = ndb.PhoneNumberProperty()

Respuestas a la pregunta(2)

Su respuesta a la pregunta