sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB:Allvarligt fel:Klass 'MongoClient' hittades inte

TL;DR

Klassen MongoClient är en del av det äldre PECL-paketet mongo men inte längre av det uppdaterade mongodb-paketet.

Och eftersom du har mongodb tillägget installerat, och inte mongo ett, det är därför du får felet

Fatal error: Class 'MongoClient' not found

På MongoDB PHP-drivrutin github repo, releasenoten om version 1.0.0, föreslår utvecklare att använda MongoDB\Driver\Manager istället för MongoClient

Ändringar från vårt äldre Mongo-tillägg

Det viktigaste är att den äldre drivrutinens klasser MongoClient, MongoDB och MongoCollection har föråldrats av klassen MongoDB\Driver\Manager, som är den nya gatewayen för att ansluta och utföra frågor, kommandon och skrivoperationer.

Så här är ersättningsklassdokumentationen och kodavsnittet som ska ersätta din :

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

När dokumentationen uppmanar det, fasas klassen ut.

Varning Denna tillägg som definierar denna klass är utfasad. Istället bör MongoDB-tillägget användas. Alternativ till denna klass inkluderar:

  • MongoDB\Driver\Manager

Från vad jag läste om deras utgivningshistorik för github-repository, har klassen du försöker använda blivit föråldrad sedan versionen av mongodb 1.0.0 , alltså på versionen 1.6.0 du är, den här klassen är inte ens en del av dll längre.

Det bekräftas av det här problemet på deras github

derickr kommenterade den 16 april

MongoClient är en klass från den gamla legacydriver och är inte tänkt att vara tillgänglig i denna. Den nya drivrutinen har \MongoDB\Driver\Manager, och det medföljande biblioteket har\MongoDB\Client.

Du måste antingen installera det gamla äldre tillägget (pecl installmongo) och använda PHP 5.x, eller uppdatera din kod för att använda dessa nya drivrutinsklasser eftersom den gamla drivrutinen inte är tillgänglig för PHP 7. Det finns en uppgraderingsguide på http:// mongodb.github.io/mongo-php-library/upgrade-guide/

Ett annat sätt, som föreslagits av MongoDB-medlemmen som citeras här ovan, är att använda denna pecl-tillägg:https://pecl.php.net/package/mongo istället för https://pecl.php.net/package/mongodb men vänligen också Lägg märke till varningen där som säger:

Detta paket har ersatts, men underhålls fortfarande för buggar och säkerhetskorrigeringar.



  1. Begränsa listlängden i redis

  2. Hur listar man alla MongoDB-databaser i Node.js?

  3. Node.js &Redis / hget synkroniserar

  4. få in nyckel i redis