disableValidation(); $results = $database->find($collection, $newQueries); $database->enableValidation(); } catch (\Exception $e) { if (!empty($this->logError)) { call_user_func_array($this->logError, [$e, "CLI", "fetch_documents_namespace_{$database->getNamespace()}_collection{$collection}"]); } } if (empty($results)) { return; } $sum = count($results); if ($concurrent) { $callables = []; $errors = []; foreach ($results as $document) { if (is_callable($callback)) { $callables[] = Co\go(function () use ($document, $callback, &$errors) { try { $callback($document); } catch (\Throwable $error) { $errors[] = $error; } }); } } Co::join($callables); if (!empty($errors)) { throw new \Error("Errors found in concurrent foreachDocument: " . \json_encode($errors)); } } else { foreach ($results as $document) { if (is_callable($callback)) { $callback($document); } } } $latestDocument = $results[array_key_last($results)]; } } }