6.10 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/application.php)中根据实际情况,添加代码如下:
$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);
}
例二、添加数据
Controller文件代码内容如下:
public function indexAction() {
$data = array('name'=>'doit', 'version'=>2.5, 'author'=>'tommy');
$mongoLink = $this->instance('MongoDb');
$mongoLink->insert('demo', $data);
}
例三、更改数据
Controller文件代码内容如下:
public function indexAction() {
$data = array('name'=>'tommy', 'version'=>2.5, 'author'=>'tommy');
$mongoLink = $this->instance('MongoDb');
$mongoLink->update('demo', array('name'=>'xiaoxiao'), $data);
}
例四、删除数据
Controller文件代码内容如下:
public function indexAction() {
$mongoLink = $this->instance('MongoDb');
$mongoLink->delete('demo', array('name'=>'sky'));
}
例五、获取总行数据
Controller文件代码内容如下:
public function indexAction() {
$mongoLink = $this->instance('MongoDb');
echo $mongoLink->collection('demo')->count(array('name'=>'doitphp'));
}