sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB:Závažná chyba:Třída 'MongoClient' nebyla nalezena

TL;DR

Třída MongoClient je součástí staršího balíčku PECL mongo, ale již není součástí aktuálního balíčku mongodb.

A protože máte mongodb nainstalováno rozšíření, nikoli mongo za prvé, proto se vám zobrazuje chyba

Fatal error: Class 'MongoClient' not found

U ovladače MongoDB PHP github repo, poznámka k verzi o verzi 1.0.0, navrhuje vývojářům používat MongoDB\Driver\Manager místo MongoClient

Změny oproti staršímu rozšíření mongo

Nejdůležitější je, že třídy MongoClient, MongoDB a MongoCollection staršího ovladače byly zastaralé třídou MongoDB\Driver\Manager, což je nová brána pro připojování a provádění dotazů, příkazů a operací zápisu.

Zde je tedy dokumentace náhradní třídy a úryvek kódu, který by měl nahradit váš:

$m = new MongoDB\Driver\Manager("mongodb://localhost:27017");

Vzhledem k tomu, že to dokumentace vyžaduje, je tato třída zastaralá.

Upozornění Toto rozšíření, které definuje tuto třídu, je zastaralé. Místo toho by se mělo použít rozšíření MongoDB. Mezi alternativy této třídy patří:

  • MongoDB\Driver\Manager

Z toho, co jsem četl o historii vydání jejich úložiště github, jsou třídy, které se pokoušíte použít, zastaralé od verze mongodb 1.0.0 , tedy na verzi 1.6.0 ano, tato třída není ani součástí dll už.

To potvrzuje tento problém na jejich github

derickr komentoval 16. dubna

MongoClient je třída ze starého staršího ovladače a v tomto by neměla být dostupná. Nový ovladač má \MongoDB\Driver\Manager a doprovodná knihovna \MongoDB\Client.

Musíte buď nainstalovat staré starší rozšíření (pecl installmongo) a používat PHP 5.x, nebo aktualizovat svůj kód, aby používal tyto nové třídy ovladačů, protože starý ovladač není pro PHP 7 k dispozici. Průvodce aktualizací je na http:// mongodb.github.io/mongo-php-library/upgrade-guide/

Dalším způsobem, jak navrhuje člen MongoDB citovaný zde výše, je použít toto rozšíření pecl:https://pecl.php.net/package/mongo místo https://pecl.php.net/package/mongodb, ale také prosím všimněte si tam varování:

Tento balíček byl nahrazen, ale je stále udržován kvůli chybám a opravám zabezpečení.



  1. Importujete soubor JSON pomocí mongimportu, stále dostáváte „neočekávaný identifikátor“?

  2. Vzdálenost tisku MongoDB mezi dvěma body

  3. Jak škálování skutečně funguje v Apache HBase

  4. 2 způsoby, jak získat velikost dokumentu v MongoDB