首页 > 数据库技术 > 详细

我的mongoDb之旅(一)

时间:2019-09-30 17:11:05      阅读:89      评论:0      收藏:0      [点我收藏+]

开发环境

php版本:7.0.10

mongodb版本:1.5

开发框架:tp5

数据库工具:navicat12formongodb

 

可以参考的外部文件链接

tp5中mongodb的扩展说明:https://www.kancloud.cn/manual/thinkphp5_1/354135

 

一、 与mysql的不同之处

1、集合相当于是表的性质,但是没有字段的维度

2、在mongodb中,字段名是根据插入数据时的KEY自动生成,不需要提前建好

3、在mongodb中,一条文档指是就是一条纪录

 

二、mongodb操作心得

1、创建集合

 技术分享图片

 

 

2、操作文档

 

(1)新增文档

php代码:

public function addUser() // 控制器测试文件下的方法

{

    $user_model = model(‘User‘);

    $data = array(

        ‘name‘=>uniqid(time(),1),

        ‘age‘=>rand(0,2),

        ‘time‘=>time(),

    );

    $user_model->addUser($data);

}

 

/**

 * 添加用户

 * @param type $data

 * @return type

 */

public function addUser($data) // 模型文件

{

    return db(‘user‘)->insert($data);

}

 

工具视图:

 技术分享图片

 

 

_id是自动生成的自增长ID

 

(2)查询单条文档

public function getUserIofo(){  // 控制器测试文件下的方法

    $user_model = model(‘User‘);

    $id = ‘5d91a751a374a412e800074a‘;

    $where = array(‘_id‘=>$id);

    $info = $user_model->getUserIofo($where);

    var_dump($info);die;

}

 

/**

 * 根据条件查询单条文档

 * @param $condition

 * @return array|false|\PDOStatement|string|Model

 * @throws \think\db\exception\DataNotFoundException

 * @throws \think\db\exception\ModelNotFoundException

 * @throws \think\exception\DbException

 */

public function getUserIofo($condition){  // 模型文件

    return db(‘user‘)->where($condition)->find();

}

 

打印出来的结果:

F:\wamp64\www\xxxxx\application\index\controller\Test.php:47:array (size=4)   ‘_id‘ =>      object(MongoDB\BSON\ObjectId)[22]       public ‘oid‘ => string ‘5d91a751a374a412e800074a‘ (length=24)   ‘name‘ => string ‘15698266415d91a751313156.63813749‘ (length=33)   ‘age‘ => int 0   ‘time‘ => int 1569826641

 

在tp5中,系统特意增加一个配置

// 强制把_id转换为id

‘pk_convert_id‘  => true,

增加后,出来的结果就是下面这样的

 

F:\wamp64\www\xxxxx\application\index\controller\Test.php:47:array (size=4)   ‘name‘ => string ‘15698266415d91a751313156.63813749‘ (length=33)   ‘age‘ => int 0   ‘time‘ => int 1569826641   ‘id‘ => string ‘5d91a751a374a412e800074a‘ (length=24)

 

(3)修改文档

php代码:

public function saveUser(){  // 控制器测试文件下的方法

    $user_model = model(‘User‘);

    $data = array(

        ‘name‘=>‘fly‘,

    );

    $id = ‘5d91a751a374a412e800074a‘;

    $where = array(‘id‘=>$id);

    $user_model->editUser($data,$where);

}

 

/**

 * 更新文档

 * @param type $data

 * @param type $condition

 * @return type

 */

public function editUser($data, $condition)   // 模型文件

{

    return db(‘user‘)->where($condition)->update($data);

}

 

工具视图:

 技术分享图片

 

 

 

(4)删除文档

php代码:

public function deleteUser(){   // 控制器测试文件下的方法

    $user_model = model(‘User‘);

    $id = ‘5d91a751a374a412e800074a‘;

    $where = array(‘id‘=>$id);

    $user_model->deleteUser($where);

}

 

/**

 * 删除文档

 * @param $condition

 * @return int

 * @throws \think\Exception

 * @throws \think\exception\PDOException

 */

public function deleteUser($condition){    // 模型文件

    return db(‘user‘)->where($condition)->delete();

}

 

工具视图:

 技术分享图片

 

 

 

三、操作总结

经过以上增、删、改、查的操作后,发现跟原来的TP5中db操作大同小异

 

我的mongoDb之旅(一)

原文:https://www.cnblogs.com/FLy-1992/p/11613011.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!