我可以为同一实体类型使用简单密钥和祖先密钥吗?

时间:2015-04-05 23:19:48

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

我需要存储一个实体类型,我想通过它的密钥(例如它的userID)查询一次,并通过其parentKey(例如userID的adminUserID)查询一次。这是可能的吗?

我正在考虑使用userID作为密钥创建密钥,然后将adminUserID添加为父/祖先密钥。我仍然能够通过其“简单”密钥(userID)获取实体,或者我总是需要从祖先密钥和userID创建密钥?

1 个答案:

答案 0 :(得分:1)

创建密钥后,无法更改密钥,即无法将父项添加到现有实体(您必须删除它并使用父项创建新实体)。但是,只要您事先知道其ID,就可以使用不存在的父项创建密钥。

另请注意,如果子实体属于不同的父项,则它们可能具有相同的自动生成ID。

我不知道您的要求,但您可能会更好地使用简单的无父实体,其中父ID只是一个索引属性。您可以随时创建此类实体,随时添加父ID,并通过id和/或parentId进行查询。