I am writing PHP DigitalOcean functions that connect to a hosted MongoDatabase.
I can connect to the DB using MongoDB\Driver\Manager like this:
$m = new MongoDB\Driver\Manager('connectionstring');
But I can’t use MongoDB\Client, the below fails with Error: Class "MongoDB\Client" not found
$mgc = new MongoDB\Client();
Is it possible to use MondoDB\Client somehow?
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
The reason that
MongoDB\Driver\Managerdoes not cause the “Error: Class <class> not found” error message but
MongoDB\Clientdoes is that
MongoDB\Driver\Manageris included in the PHP runtime right now.
MongoDB\Clientis not provided by the runtime, in order to use it, you’ll have to include a
composer.jsonfile that references its package on Packagist and include a build script. See https://github.com/digitalocean/sample-functions-php-numberstowords for a sample function that does this.
Note that while some classes, like
MongoDB\Driver\Manager, are included in the PHP runtime, and can therefore be used without using Composer like this, we don’t officially support anything except what’s built into PHP in the PHP runtime right now. Therefore, the best practice right now is to explicitly list all dependencies you use in your
composer.jsonfile. We have plans to address this long term. We are always open to feedback about Functions and our other products, and you can provide it using our official feedback platform at https://ideas.digitalocean.com/.