Trouver des solutions problème similaire - avec timeout (-1); et immortel (vrai); - rien aidé :(MongoDB - PHP - MongoCursorException 'Curseur non trouvé
Je reçois cette erreur lorsque ce code:
$this->start_time = microtime(true);
$documents = 0;
$offset = 0;
$files = array();
$mongo = new Mongo();
$db = Yii::app()->params['mongo']['db'];
$db->immortal(true);
$collection = Yii::app()->params['mongo']['collection'];
$collection_serial = 'new_serial_number';
$serial_numbers = $mongo->$db->$collection_serial->find();
$serial_numbers->timeout(-1);
$update = false;
foreach ($serial_numbers as $serial_number) {
//some code here
}
ce qui pourrait être le problème
Quelle est la version du pilote et la version MongoDB est-ce? Aussi pouvez-vous voir la connexion dans le terminal? Fondamentalement, cela signifie que le serveur doit avoir nettoyé le curseur, mais cela semble un peu étrange, surtout avec le code supplémentaire. – Sammaye
Aussi, puisque je ne peux pas éditer mon vieux commentaire maintenant, immortal n'est pas une bonne chose à utiliser ici, vraiment vous devriez rester à un délai excessif, aussi je pense que -1 ne fonctionne que lorsque vous accédez au timeout global var (comme 'MongoCursor :: $ timeout = -1') du pilote mongodb lui-même sinon, par les docs, http://php.net/manual/en/mongocursor.timeout.php il est en fait 0 pour donner un timeout infini – Sammaye
comment puis-je vérifier la version? je suis essayé MongoCursor :: $ timeout = -1, mais le résultat est le même –