これはドキュメントが見つかりませんでしたが、どこかに存在する必要があります。Google Cloud Datastore:キーの操作
私は次のように(例えば)タスクリストのすべてのためのPHPを使用して照会できます。
$query = $datastore->query();
$query->kind('tasklist')
->filter('date_approved', '<', 0)
->order("date_approved")
->order("date_updated", $query::ORDER_DESCENDING)
->limit(50);
$res = $datastore->runQuery($query);
をと(例えば、更新のための)キーを見て、私が使用してきた:
をforeach($res as $r) {
$parentkey = $r->key()->pathEnd()['name'];
echo $parentkey; //"default"
}
私は次のように作成された子レコード、「結合」場合、私が気づい
:私は後でそれらを照会する場合
$childkey = $datastore->key('tasklist', $parentkey)
->pathElement('task', 'task001');
$entity = $datastore->entity($childkey, $myTaskArray);
$datastore->upsert($entity);
を
$subquery = $datastore->query();
$subquery->kind('task')
->filter('date_approved','<',0)
->hasAncestor($datastore->key('tasklist', $parentkey))
->order("date_approved")
->order("date_updated", $subquery::ORDER_DESCENDING);
$subres = $datastore->runQuery($subquery);
はその後子供が同じように動作するためのキーを印刷:$:
foreach($subres as $sr){
$childkey = $sr->key()->pathEnd()['name'];
echo $childkey; //"task001"
}
は、より少ないgoofballの祖先のキーとキーを操作するための方法がある「親」キーでentity-> key() - > pathEnd()['name'];例えば
は、MongoDBの
また$myobj = array();
$db->Insert($myobj);
echo (string) $myobj['_id']; //key
に、私は一人でキーを提供し、祖先のキーを指定する必要がないため、ドキュメントを更新することはできないでしょうか?対
$childkey = $datastore->key('tasklist', $parentkey)
->pathElement('task', "task001");
$entity = $datastore->lookup($childkey);
$entity = $datastore->entity($childkey, $myUpdatedTaskArray);
$datastore->update($entity, array("allowOverwrite"=>true));
:
$childkey = $datastore->key('task', "task001");
$entity = $datastore->lookup($childkey);
$entity = $datastore->entity($childkey, $myUpdatedTaskArray);
$datastore->update($entity, array("allowOverwrite"=>true));
最後に、まだフィルタリングしながら、私は、(私は上記のやっているよう)の参加を行うことなく、エンティティとその子孫を照会することができます(たとえば< 0をdate_approved )とソート(date_updated DESCなど)
注:goofball非技術用語
ありがとうございました@jdp - すべての回答があります。そして非常に役に立ちました。 –