首先安装扩展,然后才能使用mongodb
一、连接数据库
try { $mongo = new MongoClient(); $db = $mongo->mydb; var_dump($db); } catch (MongoConnectionException $e) { echo $e->getMessage(); }
该代码可以连接mydb数据库,如果该数据库不存在则自动创建。
二、创建集合
try { $mongo = new MongoClient(); $db = $mongo->mydb; $mycol = $db->createCollection('mycol'); var_dump($mycol); } catch (MongoConnectionException $e) { echo $e->getMessage(); }
该代码可以创建集合mycol。
三、插入文档
mongodb中使用insert()来插入文档。
try { $mongo = new MongoClient(); $db = $mongo->mydb; $mycol = $db->mycol; $document = array('name' => 'test1' , 'sex' => 'formale' , 'age' => 20); $res = $mycol->insert($document); var_dump($res); } catch (MongoConnectionException $e) { echo $e->getMessage(); }
输出:
array (size=4) 'ok' => float 1 'n' => int 0 'err' => null 'errmsg' => null
四、查找文档
mongodb使用find()来查找文档
try { $mongo = new MongoClient(); $db = $mongo->mydb; $mycol = $db->mycol; $mongoCursor = $mycol->find(); foreach ($mongoCursor as $document) { var_dump($document); } } catch (MongoConnectionException $e) { echo $e->getMessage(); }
结果:
array (size=4) '_id' => object(MongoId)[7] public '$id' => string '56c28a793b22cf5415000029' (length=24) 'name' => string 'test1' (length=5) 'sex' => string 'formale' (length=7) 'age' => int 20
五、更新文档
使用update()来更新文档
try { $mongo = new MongoClient(); $db = $mongo->mydb; $mycol = $db->mycol; $mycol->update(array('name'=>'test1') , array('$set'=>array('age' => 21))); $mongoCursor = $mycol->find(); foreach ($mongoCursor as $document) { var_dump($document); } } catch (MongoConnectionException $e) { echo $e->getMessage(); }
结果
array (size=4) '_id' => object(MongoId)[7] public '$id' => string '56c28a793b22cf5415000029' (length=24) 'name' => string 'test1' (length=5) 'sex' => string 'formale' (length=7) 'age' => int 21
六、删除文档
try { $mongo = new MongoClient(); $db = $mongo->mydb; $mycol = $db->mycol; $mycol->remove(array('name'=>'test1')); $mongoCursor = $mycol->find(); foreach ($mongoCursor as $document) { var_dump($document); } } catch (MongoConnectionException $e) { echo $e->getMessage(); }
remove方法
public bool|array MongoCollection::remove ([ array $criteria = array() [, array $options = array() ]] )
options删除的选项:
“w”:抛出异常的级别,默认是1;
“justOne”:最多只删除一个匹配的记录;
“fsync”:Boolean, defaults to FALSE
. Forces the insert to be synced to disk before returning success. If TRUE
, an acknowledged insert is implied and will override setting w to 0.
“timeout”:Integer, defaults to MongoCursor::$timeout. If "safe" is set, this sets how long (in milliseconds) for the client to wait for a database response. If the database does not respond within the timeout period, aMongoCursorTimeoutException will be thrown.
......
其他方法可参见php手册:http://php.net/manual/zh/book.mongo.php