如何通过祖先键数据存储获取实体?
How to get entity by ancestor key datastore?
我需要从父项的键中获取一个子实体。我不知道即使它可能。但我的尝试如下:
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')
将return种类Building
和名称C
的根实体的种类Floor
的所有子实体:
[Building:C, Floor:1]
[Building:C, Floor:2]
查找(与查询相反)要求您提前知道完整的密钥,因此它们不能用于查找根实体的子实体。
我需要从父项的键中获取一个子实体。我不知道即使它可能。但我的尝试如下:
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')
将return种类Building
和名称C
的根实体的种类Floor
的所有子实体:
[Building:C, Floor:1]
[Building:C, Floor:2]
查找(与查询相反)要求您提前知道完整的密钥,因此它们不能用于查找根实体的子实体。