A
是B
type A struct {}
type B struct {}
无论祖先如何,我如何搜索其字符串ID为B
的{{1}}? (B和祖先A甚至可能不存在)
stringID
答案 0 :(得分:2)
祖先实体可能不存在,但必须知道其ID或名称。否则,您将无法为子实体创建唯一键。请注意,A的孩子和B的孩子可能具有相同的ID或名称。
另请注意,您可以删除一个实体并创建一个新实体,但一旦创建了实体,您就无法更改它。
答案 1 :(得分:1)
如果没有实际创建a
实体,您可以create a key a
{实体仅在您致电datastore.Put()
时创建)。然后,您可以使用该密钥创建b
(或者仅仅是您的密钥,如果您愿意的话)。
对于查询方面:您可以为B类型的所有实体执行keys-only query,然后针对每个键检查键的stringID是否与您想要的stringID
匹配。您可以获得多个结果 - 对于具有不同祖先的实体 - stringID对于相同的祖先(或根本没有祖先)是唯一的。