从查询中吐出最大实体

时间:2014-09-16 12:17:17

标签: google-app-engine endpoints-proto-datastore

如何从查询中获取max model given参数?

我想要的是获取xs参数,比较ndb中的xs max。

如果max_ndb(xs)更高,则返回max_model,否则返回204

   @MyModel.query_method(requests_fields('xs',),
                               name='infofest',
                               path='mymodel',
                               http_method='GET'
                               )
    def get_model(self,query):
        return max(query, key=MyModel.xs)#??

当然查询本身不可迭代,我可能不会使用query_method, 就像是。

@MyModel.method(request_fields=('xs',),
                  path='mymodel/{xs}', http_method='GET', name='mymodel.get')   def MyModelGet(self, my_model):
     if not my_model.maxXS_from_datastore:
        return model_with_maxXS
     return 204

或者我们可以在端点 - 原型数据存储中使用GQL吗?感谢

1 个答案:

答案 0 :(得分:0)

如果您的意思是“从数据存储中获取最大xs”,则无法直接执行,但可以通过对查询使用排序并获取第一个结果来轻松实现。

有点像(这是更多/更少的伪代码,我从未使用过python的ndb,我通常使用java的客观化,但逻辑是相同的):

myModel.query()。sort(“xs descending”);

此时,该查询的第一个结果将只是您的最高“xs”对象。您可以对第一个对象进行比较。