开发环境

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之旅(一)的更多相关文章

  1. 转载:MongoDB之旅(超赞,适合初学者)

    MongoDB是目前工作中经常使用到的NoSQL数据库. 本博客只记录相关理论知识和技巧,涉及到实践的部分都会单开Blog来记录实践过程. ------------------------------ ...

  2. 我的mongoDb之旅(二)

    题序:上一回,咱们简单的操作了一些增减改查的操作,这一次,再来进行一场奇妙之旅 一.案例讲解 (1).字段有值与没值时的单条数据 第一条数据title这个字段(mysql用久了,习惯这么叫了)是没有数 ...

  3. MongoDB安装并随windows开机自启

    MongoDB的官方下载站是http://www.mongodb.org/downloads,可以去上面下载最新的程序下来.在下载页面可以看到,对操作系统支持很全面,OS X.Linux.Window ...

  4. MongoDB在Windows下安装及配置

    第一步 下载MongoDB http://www.mongodb.org/downloads 第二步 解压到D:\mongodb\目录下,为了命令行的方便,可以把D:\mongodb\bin加到系统环 ...

  5. 在WIN7下安装运行mongodb 1)、下载MongoDB

    1).下载MongoDB http://downloads.mongodb.org/win32/mongodb-win32-i386-2.4.5.zip 下载Windows 32-bit版本并解压缩, ...

  6. mongodb学习(三) 安装和基本CRUD

    菜鸟啊...先吐槽一下自己 发现mongodb已经升级到2.6标准版了.  服务端最新安装方法: http://www.cnblogs.com/lzrabbit/p/3682510.html 一 准备 ...

  7. Node+Express+MongoDB+Socket.io搭建实时聊天应用实战教程(一)--MongoDB入门

    前言 本文并不是网上流传的多少天学会MongoDB那种全面的教程,而意在总结这几天使用MongoDB的心得,给出一个完整的Node+Express+MongoDB+Socket.io搭建实时聊天应用实 ...

  8. 简明 MongoDB 入门教程

    MongoDB 是免费开源的跨平台 NoSQL 数据库,命名源于英文单词 humongous,意思是「巨大无比」,可见开发组对 MongoDB 的定位.与关系型数据库不同,MongoDB 的数据以类似 ...

  9. 在WIN7下安装运行mongodb

    1).下载MongoDB http://downloads.mongodb.org/win32/mongodb-win32-i386-2.4.5.zip 下载Windows 32-bit版本并解压缩, ...

随机推荐

  1. Keras(三)backend 兼容 Regressor 回归 Classifier 分类 原理及实例

    backend 兼容 backend,即基于什么来做运算 Keras 可以基于两个Backend,一个是 Theano,一个是 Tensorflow 查看当前backend import keras ...

  2. 选择排序&冒泡排序&折半查找

    //选择排序 void test2(int a[],int len){ //每次找出一个最小值,最小值依次与原数组交换位置,通过下标来完成交换,最小值下标每次都在变,变量存储 //    假如第一个是 ...

  3. hdu-6681 Rikka with Cake

    题目链接 hdu-6681 Problem Description Rikka's birthday is on June 12th. The story of this problem happen ...

  4. lightoj 1126 - Building Twin Towers(dp,递推)

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1126 题解:一道基础的dp就是简单的递推可以设dp[height_left][ ...

  5. hdu 6215 Brute Force Sorting(模拟)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6215 题解:类似双链表的模拟. #include <iostream> #include ...

  6. Catch That Cow POJ - 3278 [kuangbin带你飞]专题一 简单搜索

    Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. ...

  7. Spring中常用的23中设计模式

    1.spring 中常用的设计模式有23中  分类  设计模式  创建型 工厂方法模式(FactoryMethod).抽象工厂模式(AbstractFactory).建造者模式(Builder).原型 ...

  8. 增强学习Q-learning分析与演示(入门)

    一些说明.参阅 https://github.com/MorvanZhou/Reinforcement-learning-with-tensorflow/blob/master/contents/1_ ...

  9. Redis缓存穿透、缓存雪崩、并发问题分析与解决方案

    (一)缓存和数据库间数据一致性问题 分布式环境下(单机就不用说了)非常容易出现缓存和数据库间的数据一致性问题,针对这一点的话,只能说,如果你的项目对缓存的要求是强一致性的,那么请不要使用缓存.我们只能 ...

  10. 本地代码上传至github

    一. 环境及工具 1.下载并安装git版本管理工具 到 http://git-scm.com/downloads 下载并安装git版本管理工具 2.Windows客户端 3.配置github账号密码及 ...