sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB:Fatal fejl:Klasse 'MongoClient' blev ikke fundet

TL;DR

Klassen MongoClient er en del af den ældre PECL-pakke mongo, men ikke længere af den opdaterede mongodb-pakke.

Og da du har mongodb udvidelsen installeret, og ikke mongo en, det er derfor, du får fejlen

Fatal error: Class 'MongoClient' not found

På MongoDB PHP driver github repo, udgivelsesnoten om version 1.0.0, foreslår udviklere at bruge MongoDB\Driver\Manager i stedet for MongoClient

Ændringer fra vores ældre mongo-udvidelse

Det vigtigste er, at den ældre drivers MongoClient-, MongoDB- og MongoCollection-klasser er blevet forældet af MongoDB\Driver\Manager-klassen, som er den nye gateway til at forbinde og udføre forespørgsler, kommandoer og skriveoperationer.

Så her er erstatningsklassens dokumentation og kodestykket, der skal erstatte din :

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

Da dokumentationen beder om det, er klassen forældet.

Advarsel Denne udvidelse, der definerer denne klasse, er forældet. I stedet skal MongoDB-udvidelsen bruges. Alternativer til denne klasse omfatter:

  • MongoDB\Driver\Manager

Ud fra hvad jeg læste om deres udgivelseshistorik for github-depoter, er den klasse, du forsøger at bruge, blevet forældet siden versionen af ​​mongodb 1.0.0 , altså på versionen 1.6.0 du er, denne klasse er ikke engang en del af dll længere.

Det bekræftes af dette problem på deres github

derickr kommenterede den 16. april

MongoClient er en klasse fra den gamle legacydriver og formodes ikke at være tilgængelig i denne. Den nye driver har \MongoDB\Driver\Manager, og det medfølgende bibliotek har\MongoDB\Client.

Du skal enten installere den gamle ældre udvidelse (pecl installmongo) og bruge PHP 5.x, eller opdatere din kode for at bruge denne nye drivers klasser, da den gamle driver ikke er tilgængelig til PHP 7. Der er en opgraderingsvejledning på http:// mongodb.github.io/mongo-php-library/upgrade-guide/

En anden måde, som foreslået af MongoDB-medlemmet citeret her ovenfor, er at bruge denne pecl-udvidelse:https://pecl.php.net/package/mongo i stedet for https://pecl.php.net/package/mongodb, men venligst også læg mærke til advarslen der siger:

Denne pakke er blevet erstattet, men vedligeholdes stadig for fejl og sikkerhedsrettelser.



  1. Hvad er forskellen mellem HSET og HMSET metode i redis database

  2. Mongodb $lookup Fungerer ikke med _id

  3. Tæl i Spring Data MongoDB-lageret

  4. Kortlægning af et dokument med delvist defineret skema