在我的应用程序中,用户有朋友。用户可以发送发送请求并确认好友(由状态属性标记),还可以删除好友。一个用户只能有X个好友和X个挂起的好友。为了存储这个,我有一个不存在的Kind,然后有一个名为Friends的子实体。看起来像这样:
好友
-Key((NonExistantKindParent,my_username), friends_username)
-status
-created_date
密钥由一个确实存在的祖先组成,id是用户的用户名。子实体将是该用户的所有朋友。因此,每个友谊将被存储两次,一次为好友1,另一次为朋友2。它们在实体组中,因此它们可以是强一致的,并且我可以执行事务(例如,如果用户添加了一个朋友,它需要写信给请求友谊的用户和被请求者朋友)。我需要更多的操作,但我正在努力了解如何进行以下操作,然后我可以将这些知识应用于我需要的其他操作:
要在创建日期之前获得所有用户好友的订单(只需要好友的用户名)。
获取用户的所有已确认好友(状态="已确认")。
阅读文档的位置:https://googlecloudplatform.github.io/gcloud-node/#/docs/v0.30.3/datastore/query?method=select我不知道如何查询实体组。对于其中的几个查询,我需要应用属性过滤器和祖先过滤器,但不确定如何应用?如果我只需要查询一个非实体组,那么文档非常有用。
使用query#filter
应用属性过滤器,并使用query#hasAncestor
设置祖先查询。