如何在实体组上执行这些操作

时间:2016-04-14 18:38:50

标签: node.js google-app-engine google-cloud-datastore gcloud-node

在我的应用中,用户有朋友。用户可以发送发送请求并确认朋友(由状态属性标记)并可以删除朋友。用户只能拥有X个有X个未决好友的朋友。为了存储这个,我有一个不存在的种类,然后有一个名为Friends的子实体。看起来像这样:

-Key((NonExistantKindParent,my_username), friends_username)
-status
-created_date

密钥包含一个存在的祖先,id是用户的用户名。子实体将是该用户的所有朋友。因此,每个友谊将被存储两次,一次为friend1,一次为friend2。它们位于实体组中,因此它们可以非常一致,并且我可以执行事务(例如,如果用户添加了需要写入请求友谊的用户和被请求者朋友的朋友)。我需要更多的操作,但我想了解如何执行以下操作,然后我可以将该知识应用于我需要的其他操作:

  • 要让所有用户的朋友在创建日期之前订购(只需要朋友的用户名)。

  • 获取所有用户确认的朋友(状态='已确认')。

阅读文档:https://googlecloudplatform.github.io/gcloud-node/#/docs/v0.30.3/datastore/query?method=select我很困惑如何查询权利组。对于其中几个查询,我需要应用属性过滤器和祖先过滤器,但它不确定如何?如果我只需要查询非实体组,则文档非常有用。

1 个答案:

答案 0 :(得分:1)

使用query#filter应用属性过滤器,并使用query#hasAncestor设置祖先查询。