Cloud Endpoints在查询时计算了Entity属性

时间:2016-01-24 18:04:05

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

如何在查询时计算实体中的属性?

例如,如果我有一个Post实体并且我getPost(Long postId),我希望在此时计算myPost.likes属性,计算多少Like其中的实体具有特定的Post密钥。

OR

如果无法做到这一点,我正在考虑为每个Int likes实体存储一个Post属性,每次插入新的Like时,我只需增加1。

1 个答案:

答案 0 :(得分:1)

两者都有效。对于后者,如果你期望很多lps(每秒钟喜欢),我会使用分片计数器。我会使用第一种方法,但从那以后,类似的东西可以有meta,当它被创建时,由谁等等。

在查询时没有真正的计算。您必须编写查询以自己总结喜欢。在Objectify中,您可以使用@OnLoad注释在查询后查询每个帖子。我强烈建议您不要这样做,因为这将是对每个返回的查询帖子的查询。你真的应该手动这样做,以避免在你甚至不需要它们的情况下对喜欢的多余查询。