欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

mongodb php,mongodb

程序员文章站 2022-05-04 10:10:40
...

mongodb php,mongodb

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

相关标签: mongodb