MongoDb使用说明

DoitPHP扩展类MongoDb,用于mongodb的数据库操作。

类方法使用说明

1、collection($collection)

选择集合。
参数说明:
$collection : 集合名称(相当于关系数据库中的表)

2、getOne($collnections, $query, $fields=array())

查询一条记录
参数说明:
$collnections : 集合名称(相当于关系数据库中的表)
$query : 查询的条件array(key=>value) 相当于key=value
fields : 需要列表的字段信息array(filed1,filed2)

3、getAll($collnections, $query, $fields=array())

查询多条记录
参数说明:
$collnections : 集合名称(相当于关系数据库中的表)
$query : 查询的条件array(key=>value) 相当于key=value
fields : 需要列表的字段信息array(filed1,filed2)

4、insert($collnections, $data)

插入数据
参数说明:
$collnections : 集合名称(相当于关系数据库中的表)
$data : 所要写入的数据信息

5、update($collection, $query, $data, $options=array('safe'=>true,'multiple'=>true))

更改数据
参数说明:
$collnections : 集合名称(相当于关系数据库中的表)
$query : 查询的条件array(key=>value) 相当于key=value
$data : 所要更改的信息
$options : 选项

6、delete($collection, $query, $option=array("justOne"=>false))

删除数据
参数说明:
$collnections : 集合名称(相当于关系数据库中的表)
$query : 查询的条件array(key=>value) 相当于key=value
$option : 选项

7、id($id = null)

MongoId。
参数说明:
$id : 获取mongoId

8、Timestamp($sec = null, $inc = 0)

MongoTimestamp。
参数说明:
$sec : @param int $inc

9、gridFS($prefix = 'fs')

GridFS
参数说明:
$prefix:前缀

10、getInstance($params)

单例模式。 用于本类的单例模式(singleton)实例化
参数说明:
$params : 数据库连接参数,如数据库服务器名,用户名,密码等

使用举例

例一、数据查询

首先配置mongodb的数据库连接参数。在主配置文件中根据实际情况,添加代码如下:

$config['mongo'] = array(
    'dsn'      => 'mongodb://localhost:27017',
    'dbname'   => '数据库名',
    'username' => '用户名',
    'password' => '密码',
);

Controller文件代码内容如下:

public function indexAction() {
    
    $mongoLink = $this->instance('MongoDb');
    $data = $mongoLink->getOne('demo', array('name'=>'doit'));
    $this->dump($data);
}

public function indexAction() {
    
    $mongoLink = $this->instance('MongoDb');
    $data = $mongoLink->getAll('demo', array('name'=>'doit'));
    $this->dump($data);
}

例二、添加数据

public function indexAction() {
    $data = array('name'=>'doit', 'version'=>2.5, 'author'=>'tommy');
    $mongoLink = $this->instance('MongoDb');
    $mongoLink->insert('demo', $data);
}

例三、更改数据

public function indexAction() {
    $data = array('name'=>'tommy', 'version'=>2.5, 'author'=>'tommy');
    $mongoLink = $this->instance('MongoDb');
    $mongoLink->update('demo', array('name'=>'xiaoxiao'), $data);
}

例四、删除数据

public function indexAction() {
    
    $mongoLink = $this->instance('MongoDb');
    $mongoLink->delete('demo', array('name'=>'sky'));
}

例五、获取总行数据

public function indexAction() {
    
    $mongoLink = $this->instance('MongoDb');
    echo $mongoLink->collection('demo')->count(array('name'=>'唐.川普'));
}