Closed umi9908 closed 1 year ago
一度に取得できるのは1,000件までなので、limitとskipを使ってみてください。
// コードは適当です。 `new Installation()` ではないかも知れません
$query = new Installation();
$query->skip(1000); // 1,000件飛ばす
$query->limit(1000); // その後の1,000件を取得
$foundObjs = $query->find();
$foundObjsが1,000件ある場合は、さらにskipを増やして再取得すれば良いかと思います。
phpではcountで検索条件の件数は取得できないという認識で合っておりますでしょうか。
for (let i = 0; i < max; i += 1) {
promises.push(data
.limit(1000)
.skip(i * 1000)
.fetchAll());
}
のように件数を数えて必要分だけskipを行わなくても
// 900件の場合
$InsObj = new Installation();
$query = new Query();
$query->limit(1000);
$query->orderBy('createDate');
$users = $InsObj->find($query); //900件を取得
$query->skip(1000); // 1,000件飛ばす
$users2 = $InsObj->find($query); //取得されるデータはなにもなし
$arr = array_merge($users,$users2);
このようにして最後$usersと$users2を結合すればいいという考えで合っておりますでしょうか。
件数が分かっているのであれば、あえて数える必要はないかと思います。
ありがとうございます。 数える必要がひとまずなさそうなので、(件数把握ができているので) ひとまずskipで対処を行ってみます。
即座にご対応くださり本当にありがとうございました。
現在、php-ncmbを利用して「ニフクラ mobile backend」のInstallationに保存しているデータを取得しています。 取得する時にデータ件数が1000件を超えてしまい一括で取得することができなくなってきました。
ncmb-utilsで1000件以上のデータの取得方法は 拝見させていただきました。 このPHP版はありませんでしょうか。 また、サンプル等ございましたらご教授いただきたいです。 何卒よろしくお願い申し上げます。