我有两种实体;
在上述种类的实体中,子级与父级键相关联。
我只需要基于子键来过滤子级,因为我没有父键,只有子键/ id。
const query = datastore.createQuery('Child')
.filter('__key__', '=', datastore.key(['Child', 123]))
奇怪的是,如果我传递一个“>”运算符,它将返回记录,但是我需要一个精确的键匹配以及说明。
如果必须添加一个复合索引,对于上述关系我该怎么做?
如您所见here,您可以像这样通过添加limit(1)来确保不会得到多个结果。
const query = datastore.createQuery('Child')
.filter('__key__', '=', datastore.key(['Child', 123])).limit(1);
const task = await datastore.runQuery(query);
您如何分配子实体密钥ID?如果使用分配ID api,则该API不能保证跨属于不同父实体的子实体的唯一性。结果,即使使用单独的索引,您也无法唯一地查询子项。
一种方法是为顶级实体分配ID,然后将该ID用作子实体的属性。然后,您可以使用该属性进行查询,并获得与之关联的唯一子项。