mongodb php

首先安装扩展,然后才能使用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

原文地址:https://www.cnblogs.com/orlion/p/5192060.html