MongoCursorTimeoutException in jenssegers / laravel-mongodb

8

Ich habe eine Abfrage, die Daten in einer riesigen Sammlung (über 48M) nachschlägt, doch selbst wenn ich timeout=-1 hinzufüge, wirft sie immer noch MongoCursorTimeoutException ausnahme ..

%Vor%

Ich verwende diese Bibliothek: https://github.com/jenssegers/laravel-mongodb

Irgendwelche Ideen?

    
Broshi 02.07.2015, 16:57
quelle

1 Antwort

1

Es gibt ein Problem PHP-1249 - MongoCursor :: count () sollte das Socket-Timeout des Cursors verwenden , für das gesendet wurde PHP MongoDB Treiber v1.5.7, der im Oktober 2014 in Version 1.5.8 behoben wurde.

Die antworten vom Support:

  

Wenn wir uns den Code ein wenig anschauen, scheint es, dass sowohl Socket-Timeout als auch maxTimeMS nicht an den Befehl count weitergegeben wird.

     

Wenn Sie einen sofortigen Workaround benötigen, sollten Sie mit MongoDB::command() vorerst auskommen (was beide Timeouts unterstützen kann).

Die von einem der Benutzer gepostete Problemumgehung lautet:

%Vor%

Es scheint, dass laravel-mongodb MongoDB::command() nicht verwendet. Sie müssen entweder Ihre Abfrage explizit ohne Hilfe von where methoden wie oben gezeigt schreiben oder auf v.1.5.8 upgraden.

    
Gyrocode.com 15.07.2015, 02:41
quelle

Tags und Links