Seguindo backreferences de tipos desconhecidos no NDB

Estou no processo de escrever meu primeiro serviço Web RESTful sobre o GAE e o tempo de execução do Python 2.7; Eu comecei usando a nova API ndb brilhante de Guido.

No entanto, não sei como resolver um caso específico sem o recurso implícito de referência anterior da API do db original. Se o user-agent solicitar um recurso específico e esses recursos forem removidos 1 grau:

host / api / kind / id? depth = 2

Qual é a melhor maneira de descobrir uma coleção relacionada de entidades do "um" em um relacionamento um-para-muitos, dado que o tipo de entidade relacionada é desconhecido em tempo de desenvolvimento?

Não consigo usar uma consulta de substituição, conforme descrito em umconsulta SO anterior devido a esta última restrição. O fato de meu modelo ser definível em tempo de execução (e, portanto, não é codificado) me impede de usar uma consulta para filtrar propriedades para chaves correspondentes.

O Ancestor e outras consultas sem tipo também são eliminadas devido à limitação do armazenamento de dados que me impede de filtrar em uma propriedade sem o tipo especificado.

Até agora, a única idéia que tive (além de reverter para o db api) é usar uma transação entre grupos para escrever minha própria referência no "one", seja atualizando um ndb.StringProperty (repeat = True) contendo todos os tipos relacionados quando uma entidade de um novo tipo é introduzida ou simplesmente mantendo uma lista de chaves no "um" ndb.KeyProperty (repeat = True) toda vez que uma entidade "muitos" relacionada é gravada no armazenamento de dados.

Espero que alguém mais experiente do que eu possa sugerir uma abordagem melhor.

Dada a sugestão de jmort253, tentarei aumentar minha pergunta com um exemplo concreto adaptado dos 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()

questionAnswers(2)

yourAnswerToTheQuestion