当前位置:网站首页>About PHP startup, mongodb cannot find the specified module

About PHP startup, mongodb cannot find the specified module

2022-07-06 05:54:00 Beiqiaosu

Preface :

        Recently, there is a little demo, Need to pass through PHP Store user behavior records in MongoDB, Reuse Spark Do collaborative filtering . Because in the past, cross language interaction was handled through message oriented middleware , This time it is used locally MongoDB But it caused several problems . First, the extension is installed locally , The startup times cannot find the module error , Another hour PHP The instantiation times MongoClient And some functions do not exist . Finally, I also recommend some convenient and fast MongoDB Graphic tool .

Environmental Science :

1. Windows10

2. PHP7.4

3. MongoDB 4.4.14 Server

5. php_mongodb-1.12.1-7.4-nts-vc15-x64

install :

1. MongoDB Server download

2. php_mongodb-1.12.1-7.4-nts-vc15-x64 download

3. navicat for mongodb download

problem :

1. Specified module not found php_mongodb

PHP Add extension to php_mongodb Incorrect , Except for the need to php_mongodb.dll still more php_mongodb.pdb Copied to the php Install under directory ext in

Last in php.ini add to  extension=php_mongodb.dll, After restarting, view php -m Or view in the browser phpinfo ()

2. MongoClient Class does not exist

The reason is that this is an old version php_mongo Extend the provided classes , The new version is through the way of demonstrating the code later , If you don't know the new methods or functions provided by the extension, you can view them in the following ways .

(1). get_declared_classes () Check the preset functions in the extension

Tool use :

1. MongoDB Server

(1).  Start the service

2. Navicat for MongoDB

(1). Connection service

Code demonstration :

1. Inquire about

public function testMongoDbQuery()
    {
        $manager = new \MongoDB\Driver\Manager("mongodb://localhost:27017");

        $filter = ['x' => ['$gt' => 0]];
        $options = [
            'projection' => ['_id' => 0],
            'sort' => ['x' => -1],
        ];

        //  Query data 
        $query = new \MongoDB\Driver\Query($filter, $options);
        $cursor = $manager->executeQuery('test.sites', $query);

        foreach ($cursor as $document) {
            print_r($document);
        }
    }

2. Insert

public function testMongoDbInsert()
    {
        $manager = new \MongoDB\Driver\Manager("mongodb://localhost:27017");

        $bulk = new \MongoDB\Driver\BulkWrite;
        // mongoDb By default, there is a self growing string ID
        $document = [
            '_id' => new \MongoDB\BSON\ObjectID,
            'videoId' => mt_rand(1, 99999),
            'userId' => mt_rand(1, 9999),
            'score' => floatval(mt_rand(5,100)),
            'date' => time()
        ];
        $bulk->insert($document);
        $res = $manager->executeBulkWrite('tanhua.recommend_video_20191001', $bulk);

        return $res;
    }

3. Batch insert

public function testMongoDbBulk()
    {
        //return get_declared_classes();
        $manager = new \MongoDB\Driver\Manager("mongodb://localhost:27017");

        $bulk = new \MongoDB\Driver\BulkWrite;
        $bulk->insert(['x' => 1, 'name'=>'tenent', 'url' => 'http://www.runoob.com']);
        $bulk->insert(['x' => 2, 'name'=>'Google', 'url' => 'http://www.google.com']);
        $bulk->insert(['x' => 3, 'name'=>'taobao', 'url' => 'http://www.taobao.com']);
        $res = $manager->executeBulkWrite('test.sites', $bulk);

        return $res;
    }

Exchange of learning

原网站

版权声明
本文为[Beiqiaosu]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/187/202207060546506858.html