私はこれを理解しました。私はこれをGQLクエリから見つけることができませんでした。しかし、それは通常のクエリから可能です。
これは、Googleドキュメントが本当に悪い例であるので、誰かが助けてくれることを願っています。
$datastore = new Google\Cloud\Datastore\DatastoreClient([
'projectId' => $projectId,
]);
function cursor_paging($datastore, $queryKind, $pageSize, $parm1, $startDate, $endDate, $pageCursor = '')
{
$query = $datastore->query()
->kind($queryKind)
->filter('field1', '=', $parm1)
->filter('date', '>=', $startDate)
->filter('date', '<', $endDate)
->limit($pageSize)
->start($pageCursor);
$result = $datastore->runQuery($query);
$nextPageCursor = '';
$entities = [];
foreach ($result as $entity) {
$nextPageCursor = $entity->cursor();
$entities[] = $entity;
}
return array(
'nextPageCursor' => $nextPageCursor,
'entities' => $entities
);
}
これはGoogleのクラウドデータストアのphp docsで提供されたこの機能で使用した方法です。
$pageSize = 500;
$queryKind = "your_kind";
$result = cursor_paging($datastore, $queryKind, $pageSize, $currentThermostat, $startDate, $endDate);
$countRows = 0;
for ($x=0; $x < $pageSize; $x++) {
$counter = 0;
foreach ($result['entities'] as $item) {
print($countRows . " " . $item['data']);
$countRows++;
$counter++;
}
$result = cursor_paging($datastore, $queryKind, $pageSize, $currentThermostat, $startDate, $endDate, $result['nextPageCursor']);
if ($counter > 0) {
$x = 0;
} else {
$x = $pageSize; //exit loop when no more results
}
}