使用MongoDB \ Driver \ Manager转换MongoDB代码

时间:2018-02-14 11:25:04

标签: php database mongodb

我正在尝试将代码转换为访问MongoDB using MongoDB\Driver\Manager: latest MongoDB extension of PHP,但有一些困难。实际上,这个新驱动程序在我看来与前一个驱动程序相比有点低级,所以使用它可能有点复杂......:

$mongoConn = new MongoClient("mongodb://localhost:27017");
$mongoDB = $mongoConn->selectDataBase(dbname1);//dbname2 exists too
...
$index = new MongoDBIndexation($mongoDB);//our class for using

如果可以,我必须从:

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

如何继续使用$ mongoDB?

以下是什么:

$collection->remove
$collection->save and
$collection->findOne ?

提前致谢

1 个答案:

答案 0 :(得分:7)

您可以使用新的mongo客户端驱动程序,该驱动程序提供与旧版驱动程序类似的所有方法。

Installation

Tutorial

找一个例子

require 'vendor/autoload.php';
$m= new MongoDB\Client("mongodb://127.0.0.1/");
$db = $m->db;
$collection = $db->col;
$query = array();
$document = $collection->findOne($query);

如果您想使用driver manager api

,可以使用以下等效值

$收藏 - >清除

$bulkWrite=new MongoDB\Driver\BulkWrite;
$filter=array();
$bulkWrite->delete($filter, array('limit'=>1));
$mongoConn->executeBulkWrite('db.col', $bulkWrite); 

$收藏 - >保存

插入:

$bulkWrite=new MongoDB\Driver\BulkWrite;
$doc=array();
$bulk->insert($doc);
$mongoConn->executeBulkWrite('db.col', $bulkWrite);

更新

$bulkWrite=new MongoDB\Driver\BulkWrite;
$filter=array();
$update=array('$set' => array());
$options=array('multi' => false, 'upsert' => false);
$bulkWrite->update($filter, $options);
$mongoConn->executeBulkWrite('db.col', $bulkWrite);

$收藏 - > findOne

$filter= array();
$options = array('limit'=>1);
$query = new MongoDB\Driver\Query($filter, $options);
$mongoConn->executeQuery('db.col', $query);