Как получить сущность по хранилищу ключей предка?

Мне нужно получить дочернюю сущность от ключа родителя. Я не знаю, даже если это возможно. Но я попробовал следующее:

public function get_service_details(){
$datastore = new Google\Cloud\Datastore\DatastoreClient(['projectId' => $this->config->item('google_project_id')]);
$key = $datastore->key($this->entity_kind);

$key->ancestor($this->parent_kind, $this->parent_key);
$server_config_details = $datastore->lookup($key);
return $server_config_details;
}

а также

public function get_service_details(){
$datastore = new Google\Cloud\Datastore\DatastoreClient(['projectId' => $this->config->item('google_project_id')]);
$ancestorKey = $datastore->key($this->parent_kind, $this->parent_key);
$query = $datastore->query()
->kind($this->entity_kind)
->hasAncestor($ancestorKey);

$server_config_details = $datastore->runQuery($query);
return $server_config_details;
}

Но в обоих вышеупомянутых случаях мне ничего не возвращалось. Подскажите, пожалуйста, что мне не хватает?

0

Решение

Вы можете использовать запрос предка, чтобы найти дочерние объекты:

Например, этот запрос:

SELECT Floor WHERE __key__ HAS ANCESTOR KEY(Building, 'C')

вернет все дочерние объекты вида Floor корневого объекта с видом Building и имя C:

[Building:C, Floor:1]
[Building:C, Floor:2]

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

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]