Мне нужно получить дочернюю сущность от ключа родителя. Я не знаю, даже если это возможно. Но я попробовал следующее:
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;
}
Но в обоих вышеупомянутых случаях мне ничего не возвращалось. Подскажите, пожалуйста, что мне не хватает?
Вы можете использовать запрос предка, чтобы найти дочерние объекты:
Например, этот запрос:
SELECT Floor WHERE __key__ HAS ANCESTOR KEY(Building, 'C')
вернет все дочерние объекты вида Floor
корневого объекта с видом Building
и имя C
:
[Building:C, Floor:1]
[Building:C, Floor:2]
Поиски (в отличие от запросов) требуют, чтобы вы знали полный ключ заблаговременно, поэтому их нельзя использовать для поиска дочерних объектов корневой сущности.
Других решений пока нет …