1.MongoDB简介

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。

在高负载的情况下,添加更多的节点,可以保证服务器性能。

MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

2.MongoDB特点

MongoDB的提供了一个面向文档存储,操作起来比较简单和容易。

你可以在MongoDB记录中设置任何属性的索引 (如:FirstName="Sameer",Address="8 Gandhi Road")来实现更快的排序。

你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。

如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。

Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。

MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。

Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。

Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。

Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。

GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。

MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。

MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。

MongoDB安装简单。

3.MongoDB安装

在没安装mogonDB之前,我觉得它很难安装成功,熟悉了安装过程,其实很简单。

首先,从mongoDB官网下载对应服务器的版本。(https://www.mongodb.com/download-center#community)

在进行安装,安装成功后,在对应的盘建立data目录,在data目录下在建立db目录,找到mongoDB安装的位置,进入到bin目录下,双击mongod.exe.会弹出一个命令框信息,到此,mongoDB就安装成功了。

问题:双击mongod.exe出现闪退的情况,在安装MongoDB目录下找到一个lock的文件,删除它,然后双击就不会出现闪退的现象

4.安装php扩展

个人觉得这步是最烦的,我安装好久才成功

4.1先查看自己的php版本号,可以通过 访问localhost/phpinfo.php查看,建议上网查下需要了解的信息

4.2下载php_mongo.dll对应得php版本号,这个很关键。

4.3在对应的环境下,我是在C:\phpstudy\php\php-5.4.45\ext放入下载的php_mongo.dll

4.4 在C:\phpstudy\php\php-5.4.45\php.ini配置文件中 添加 extension=php_mongo.dll(建议放在很多个extension一块)

4.5重启服务器。通过 访问localhost/phpinfo.php查看 出现 mongo代表安装成功

5.php对mongoDB的操作

5.1 连接

$con=new MongoClient();

参数简单说明:不写代表 连接本地主机,默认端口

安整格式:(“mongodb://用户名:密码 @地址:端口/默认指定数据库”,参数)

eg:(“mongodb://admin_miss:miss@localhost:27017/test”,array(‘persist’=>’p',”replicaSet”=>true))

5.2 选择数据库

$db=$con->test;或者 $db=$con->selectDB('test');

当test不存在时,会自动创建test数据库,因此,在开发中不要写错单词

5.3 选择集合(在mysql中对应选择表)

$collection=$db->column;

column不存在时会自动创建

5.4简单写法

$collection=$con->test->column;

5.5插入数据

<?phpheader("content-type:text/html;charset=utf-8");$t=new MongoClient(); //连接mongo$m=$t->test;//选择数据库$collection=$m->column; //选择集合$t=time();$document=array('title'=>'Mongo 教程','data'=>'123456','time'=>$t,'url'=>'http://www.baidu.com',);//插入数据$collection->insert($document);

5.6查询数据

<?phpheader("content-type:text/html;charset=utf-8");$t=new MongoClient(); //连接mongo$m=$t->test;//选择数据库$collection=$m->column; //选择集合$t=time();$document=array('title'=>'Mongo 教程','data'=>'123456','time'=>$t,'url'=>'http://www.baidu.com',);//查询数据$result=$collection->find();foreach($result as $value){var_dump($value);echo "<br>";}
查询文档记录数:$collection->count(); #全部$collection->count(array('title'=>'Mongo 教程')) ; #加上条件$collection->count(array('age'=>array('$gt'=>10,'$lt'=>20))); #大于10,小于20$collection->find()->limit(5)->skip(2); #limit 代表取的数据条数, skip代表从哪里开始取(从0开始计数)$collection->find()->snapshot(); # 得到聚合中所有的文档查询指定的id$collection->find(array('_id'=>new MongoId('59bcd23a5c36b5940e000034')));
查询指定的字段$result=$collection->find(array('title'=>'Mongo 教程','time'=>1505546761));
模糊查询$result=$collection->find(array('title'=>new MongoRegex('/user/'))); //  相当于 title like %user%    // '/user$/'  匹配以user结尾    '/^user/'  匹配以user开始
查询一条数据$collection->findOne();注意:使用findOne()获得的结果集不能使用snapshot(),fields()等函数fields() 列显示不显示$result=$collection->find()->fields(array('title'=>true));
true代表显示该字段的数据,反之 false代表不显示该字段的数据注意:不能同时出现true和false

5.7修改数据

<?phpheader("content-type:text/html;charset=utf-8");$t=new MongoClient(); //连接mongo$m=$t->test;//选择数据库$collection=$m->column; //选择集合$t=time();$document=array('title'=>'Mongo 教程','data'=>'123456','time'=>$t,'url'=>'http://www.baidu.com',);//修改数据$collection->update(array('title'=>'Mongo 教程'),array('$set'=>array('title'=>'Mongo')));$result=$collection->find();foreach($result as $value){var_dump($value);echo "<br>";}
// 将username=user2 的 regtime+100$con->update(array('username'=>'user2'),array('$inc'=>array('regtime'=>100)));
修改指定id的数据$collection->update(array('_id'=>new MongoId('59bcd1ea5c36b51c1300002a')),array('$set'=>array('title'=>'Mongo 教程')))
比较下面三个例子$where=array(‘column_name’=>’col123′);$newdata=array(‘column_exp’=>’GGGGGGG’,'column_fid’=>444);$result=$collection->update($where,array(‘$set’=>$newdata)); #$set:让某节点等于给定值,类似的还有$pull $pullAll $pop $inc/** 结果:* 原数据* {“_id”:ObjectId(“4d635ba2d549a02801000003″),”column_name”:”col123″,”column_exp”:”xiaocai”}* 被替换成了* {“_id”:ObjectId(“4d635ba2d549a02801000003″),”column_name”:”col123″,”column_exp”:”GGGGGGG”,”column_fid”:444}*///** 替换更新 **/$where=array(‘column_name’=>’col709′);$newdata=array(‘column_exp’=>’HHHHHHHHH’,'column_fid’=>123);$result=$collection->update($where,$newdata);/** 结果:* 原数据* {“_id”:ObjectId(“4d635ba2d549a02801000003″),”column_name”:”col709″,”column_exp”:”xiaocai”}* 被替换成了* {“_id”:ObjectId(“4d635ba2d549a02801000003″),”column_exp”:”HHHHHHHHH”,”column_fid”:123}*///** 批量更新 **/$where=array(‘column_name’=>’col’);$newdata=array(‘column_exp’=>’multiple’,’91u’=>684435);$result=$collection->update($where,array(‘$set’=>$newdata),array(‘multiple’=>true));/*** 所有’column_name’='col’都被修改*/    

5.8删除数据

$collection->remove(); #删除collection里面的所有数据<?phpheader("content-type:text/html;charset=utf-8");$t=new MongoClient(); //连接mongo$m=$t->test;//选择数据库$collection=$m->column; //选择集合$t=time();$document=array('title'=>'Mongo 教程','data'=>'123456','time'=>$t,'url'=>'http://www.baidu.com',);//删除数据$collection->remove(array('title'=>'Mongo'));  #删除指定字段条件数据
$collection->remove(array('_id'=>new MongoId('59bcd1ea5c36b51c1300002a')));   #删除指定id数据
$collection->remove(array('title'=>'Mongo'),array('justOne'=>true)); #删除指定字段条件数据的一条记录

5.9创建索引,排序

$collection->ensureIndex(array('savetime'=>-1));  //1升序,-1降序
$re = $collection->find()->sort(array('savetime'=>-1))->limit($pageSize)->skip($startPage);  // sort排序

PHP 操作MongoDB相关推荐

  1. php mongodb execute,php简单操作mongodb

    您现在的位置是:网站首页>>PHP>>php php简单操作mongodb 发布时间:2019-09-29 16:34:25作者:wangjian浏览量:525点赞量:0 一: ...

  2. php 原生查询mongo,PHP操作MongoDB的原生CURD方法

    //连接数据库 $m = new MongoClient("mongodb://127.0.0.1:27017"); // 连接默认主机和端口为:mongodb://localho ...

  3. php_mongo.dll下载(php操作mongoDB需要)

    php_mongo.dll下载(php操作mongoDB需要) 如果PHP连接操作mongoDB就必须要加入此扩展:php_mongo.dll,放到你对应php的扩展目录在你的php.ini中加入:e ...

  4. Python 操作 MongoDB 数据库!

    作者 |黄伟呢 来源 |数据分析与统计学之美 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 先来看看MySQL与MongoDB 概念区别 ...

  5. 58 Node.js中操作mongoDB数据库

    技术交流 QQ 群:1027579432,欢迎你的加入! 欢迎关注我的微信公众号:CurryCoder 的程序人生 1.数据库概述及环境搭建 1.1 为什么要使用数据库 动态网站中的数据都是存储在数据 ...

  6. python操作mongodb进行读写

    python操作mongodb 安装mongodb的Python库 python3 -m pip install pymongo 测试连接: import pymongo #myclient = py ...

  7. mongo go 查询指定字段_Go语言 操作MongoDB数据库批量查询

    数据操作是编程中避免不了的操作,这也就牵扯到了数据库的增删改查,而实际工作中我们最常用到的是增改查.今天要介绍的是Go 语言查询MongoDB数据库. 操作mongodb使用的包是"http ...

  8. NoSQL 之 Morphia 操作 MongoDB

    上两篇文章:http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html http://www.cnblogs.com/hoojo/arch ...

  9. 用python向mongodb插入数据_Python操作MongoDB数据库(一)

    Python操作MongoDB数据库(一) 前言 干货文章继续出发!隔的时间有些久了哈,对 MongoDB 安装回顾的同学,可以看下windows环境 <初识 MongoDB 数据库>.这 ...

  10. PHP操作mongodb数据库操作类

    最近的项目开发中使用的数据库是mongodb数据库,因为小编的公司也是刚刚使用mongodb数据库,所以之前没有封装好的mongodb数据库操作类拿来使用,所以小编在项目中自己封装了一个mongodb ...

最新文章

  1. 论文笔记之:Deep Attributes Driven Multi-Camera Person Re-identification
  2. python字典按键值排序_Python字典『键 值』排序
  3. Python IO 基本编程示例
  4. 2021新乡市铁一中高考成绩查询,2021铁一中中考录取分数线预测
  5. 【冷笑话】看谁跑的快?
  6. 25服务端_手把手教你使用 OpenResty 搭建高性能服务端!
  7. linux定位so快捷方式_5分钟带你了解Linux常用命令全称
  8. 【codevs5037】线段树练习4加强版
  9. java内存分配与回收策略、动态对象年龄判断、空间分配担保
  10. win10系统怎么查看密钥?
  11. Process finished with exit code -1073741819(0x0000005)
  12. xp系统远程桌面关闭计算机,系统是xp在本机开启远程桌面后,别人使用远程桌面连接我的电脑,我的电脑就会出现蓝屏停止代码是0x0000007f...
  13. 微信扫码下载APK遮罩提示示例
  14. 假装写在了开头qwq
  15. 100+个NLP数据集
  16. python randn_numpy.random.randn()用法
  17. 我手机上常用的app和常访问的网站
  18. 【逻辑题】人与熊过河
  19. linux超级无敌指令进阶
  20. “宇宙时钟”脉冲星太空定位精度达5公里

热门文章

  1. 卡内基梅隆大学计算机科学博士,卡内基梅隆大学有哪些专业处于世界顶尖水平?...
  2. 2.flask模板--jinja2
  3. 电脑excel合并单元格怎么拆分开来
  4. C语言100题练习计划 33——递归实现指数函数
  5. 推荐一个美中不失优雅的博客网主页(素材参考---麋鹿鲁哟)
  6. java导出文件到excel文件怎么打开_java导入、导出Excel文件
  7. 1957:【12NOIP普及组】质因数分解
  8. 计算机网络为何使用分组交换,而不是电路交换
  9. 如何远程连接POSTGRESQL数据库
  10. IE6不兼问题之Internet Explorer 无法打开 internet站点