假设我有这个非常简单的父/子relatiosnship (任何Answer
类实例总是有Question
父母):
class Answer(ndb.Model): content = ndb.StringProperty() timestamp = ndb.DateTimeProperty() def to_message(): """Returns a protoRPC message object of the answer""" class Question(ndb.Model): content = ndb.StringProperty() answers = ndb.KeyProperty(repeated = True, kind = 'Answer') def to_message(self): """Returns a protoRPC message object of the question"""
这两种to message
方法仅用于返回protoRPC对象.问题是:在我的to_message
方法中,在Question
类中,如果我想获取所有子Answer
实例,检索它们,并使用自己的to_message
方法将它们变成一个很好的rpc消息,那么它更好:
迭代anwers
重复的KeyProperty列表
使用"父"属性上的过滤器执行查询,并迭代它输出的列表
在NDB访问方面,第一种方法似乎是最好的,但由于我们无论如何都要超过免费限制,我更想知道数据存储区在获取内容方面是否比我更有效,迭代那份清单.
编辑:原始问题实际上是一个非常简单明了的答案:第一种方式.真正的问题是,如果我必须Answer
根据它们的属性过滤掉一些实体(例如timestamp
):使用过滤器查询是否更好,或者迭代列表并使用条件仅收集"有趣"实体?