App Engine Datastore объединяется с фильтром по ссылке - PullRequest
1 голос
/ 12 июля 2011

Я очень плохо знаком с App Engine Datastore и не могу понять это. У меня есть эти модели: </p> <pre><code>class SomeUser(User): name = db.StringProperty() class Group(db.Model): title = db.StringProperty() date_started = db.DateTimeProperty(auto_now_add=True) class GroupParticipant(db.Model): group = db.ReferenceProperty(Group, collection_name = 'participants') participant = db.ReferenceProperty(SomeUser) is_owner = db.BooleanProperty()

Как запросить хранилище данных, чтобы получить такой результат:

Group.title, Group_owner, Number of participants/Group
group1,      someuser1,   3
group2,      someuser2,   4

1 Ответ

3 голосов
/ 12 июля 2011

Нет никаких соединений вообще. Вы должны получить все данные вручную. Например, вы можете извлечь все записи из GroupParticipant, а затем извлечь все Group и SomeUser в цикле (обратите внимание, что выборка по Key очень быстрая)

-

Кстати, возможно, лучше использовать разные структуры данных, например

class SomeUser(User):
        name = db.StringProperty()

class Group(db.Model):
        title = db.StringProperty()
        date_started = db.DateTimeProperty(auto_now_add=True)
        owner = db.ReferenceProperty(SomeUser)
        participants = db.ListProperty(db.Key)

в этом случае вы можете получить все необходимые данные одним запросом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...