Как получить дочернюю сущность из облачного хранилища данных, не передавая родительский ключ в nodejs - PullRequest
0 голосов
/ 03 октября 2019

У меня есть 2 вида сущностей;

  • Родитель
  • Дочерний

В вышеперечисленных видах сущностей Дочерний ассоциируется сродительский ключ.

Мне нужно отфильтровать дочерний ключ только на основе дочернего ключа, поскольку у меня нет родительского ключа, только дочерний ключ / идентификатор.

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

Странная вещь, если я передам оператор ">", он вернет записи, однако мне нужно точное совпадение ключа, а также объяснение.

Если мне нужно добавить составной индекс, как бы я сделал это дляВыше отношение?

Ответы [ 2 ]

0 голосов
/ 08 октября 2019

как вы можете видеть здесь вы можете сделать это следующим образом, добавив предел (1), чтобы убедиться, что вы не получите несколько результатов.

const query = datastore.createQuery('Child')
                       .filter('__key__', '=', datastore.key(['Child', 123])).limit(1);
const task = await datastore.runQuery(query);
0 голосов
/ 03 октября 2019

Как вы назначаете идентификаторы ключей дочерних объектов? Если он использует идентификатор API allocate, то этот API не гарантирует уникальность среди дочерних объектов, принадлежащих различным родительским объектам. В результате, даже с отдельным индексом, вы не можете однозначно запрашивать дочерний объект.

Один из подходов состоит в том, чтобы назначить идентификаторы для объекта верхнего уровня, а затем использовать этот идентификатор в качестве свойства дочернего объекта. Затем вы можете выполнить запрос, используя это свойство, и получить уникальный дочерний элемент, связанный с ним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...