如何从云数据存储中检索子实体,而不在nodejs中传递父键

问题描述 投票:-1回答:2

我有两种实体;

  • 父母
  • 儿童

在上述种类的实体中,子级与父级键相关联。

我只需要基于子键来过滤子级,因为我没有父键,只有子键/ id。

const query = datastore.createQuery('Child')
                       .filter('__key__', '=', datastore.key(['Child', 123]))

奇怪的是,如果我传递一个“>”运算符,它将返回记录,但是我需要一个精确的键匹配以及说明。

如果必须添加一个复合索引,对于上述关系我该怎么做?

node.js filter google-cloud-datastore datastore datastore-admin
2个回答
0
投票

如您所见here,您可以像这样通过添加limit(1)来确保不会得到多个结果。

const query = datastore.createQuery('Child')
                       .filter('__key__', '=', datastore.key(['Child', 123])).limit(1);
const task = await datastore.runQuery(query);

-1
投票

您如何分配子实体密钥ID?如果使用分配ID api,则该API不能保证跨属于不同父实体的子实体的唯一性。结果,即使使用单独的索引,您也无法唯一地查询子项。

一种方法是为顶级实体分配ID,然后将该ID用作子实体的属性。然后,您可以使用该属性进行查询,并获得与之关联的唯一子项。

© www.soinside.com 2019 - 2024. All rights reserved.