这篇文章主要介绍了TP5(thinkPHP5)框架mongodb扩展安装及特殊操作,结合实例形式分析了MongoDB扩展的基本安装、配置、模型操作以及使用Push操作实现的数据添加、更新等方法,需要的朋友可以参考下
本文实例讲述了TP5(thinkPHP5)框架mongodb扩展安装及特殊操作。分享给大家供大家参考,具体如下:
ThinkPHP 5.0 MongoDb驱动
首先安装官方的mongodb扩展:
http://pecl.php.net/package/mongodb
找到对应的php版本的扩展
然后,配置应用的数据库配置文件database.php的type参数为:
'type' => '\think\mongo\Connection',
即可正常使用MongoDb,例如:
使用最新mongodb扩展
Db::name('demo')
->find();
Db::name('demo')
->field('id,name')
->limit(10)
->order('id','desc')
->select();
或者使用模型操作:
User::get(1);
User::all('1,2,3');
MongoDb默认的主键是_id并且是一个ObjectID对象,如果需要和mysql一样使用id作为主键,可以如下参数:
// 强制把_id转换为id
'pk_convert_id' => true,
tp5 Mongodb特殊操作
Push操作
添加数据
public function add(){
$this->data = [
'作者' => 'tuzi',
'年龄' => '22',
'标题' => '防塔与补兵',
'评论' => [
[
'序号' => '001',
'内容' => '五杀'
]
]
];
$res = Db::table('document')->insert($this->data);
if($res){
echo "success";
}else{
echo "error";
}
}
结果
array(1) {
[0] => array(5) {
["_id"] => object(MongoDB\BSON\ObjectId)#12 (1) {
["oid"] => string(24) "5a51f73083869e4b65549c36"
}
["作者"] => string(4) "tuzi"
["年龄"] => string(2) "22"
["标题"] => string(15) "防塔与补兵"
["评论"] => array(1) {
[0] => array(2) {
["序号"] => string(3) "001"
["内容"] => string(6) "五杀"
}
}
}
}
利用push更新数据
public function update()
{
$update_data['评论'] = [
'$push',
[
'序号' => '002',
'内容' => '三杀'
]
];
$update_res = Db::table('document')->where('标题','防塔与补兵')->update($update_data);
if($update_res){
echo "success";
}else{
echo "error";
}
}
结果
array(1) {
[0] => array(5) {
["_id"] => object(MongoDB\BSON\ObjectId)#12 (1) {
["oid"] => string(24) "5a51f73083869e4b65549c36"
}
["作者"] => string(4) "tuzi"
["年龄"] => string(2) "22"
["标题"] => string(15) "防塔与补兵"
["评论"] => array(2) {
[0] => array(2) {
["序号"] => string(3) "001"
["内容"] => string(6) "五杀"
}
[1] => array(2) {
["序号"] => string(3) "002"
["内容"] => string(6) "三杀"
}
}
}
}
更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
本文标题为:TP5(thinkPHP5)框架mongodb扩展安装及特殊操作示例
基础教程推荐
- PHP命名空间简单用法示例 2022-12-01
- laravel 解决多库下的DB::transaction()事务失效问题 2023-03-08
- 在Laravel中实现使用AJAX动态刷新部分页面 2023-03-02
- PHP中的错误及其处理机制 2023-06-04
- 使用PHP开发留言板功能 2023-03-13
- php array分组,PHP中array数组的分组排序 2022-08-01
- thinkphp3.2.3框架动态切换多数据库的方法分析 2023-03-19
- laravel ORM关联关系中的 with和whereHas用法 2023-03-02
- PHP实现Redis单据锁以及防止并发重复写入 2022-10-12
- PHP获取MySQL执行sql语句的查询时间方法 2022-11-09