设为首页 收藏本站
查看: 1620|回复: 0

[经验分享] MONGODB的特性和PHP-MONGODB环境的搭建

[复制链接]

尚未签到

发表于 2018-10-28 08:14:24 | 显示全部楼层 |阅读模式
  mongoDB是目前比较流行的非关系型数据库(no-sql),对于网上吹嘘的性能、吞吐、并发等大家可以自己来摸索和体会,这里不复述。
  说说mongoDB一些开发级的特性吧:
  1,mongo没有两表连查,相比mysql就没有 left join 或者 select … from a,b这样的操作了;
  2,mongo不支持事务、存储过程等,所以用mongo做安全和稳定性高的应用不太现实;
  3,mongo没有建表或者维护表结构的概念:
  某个库在第一次写入操作时自动创建
  某个表(mysql叫做table,mongo叫做collection)在第一次写入时自动创建
  同一个collection中的每条记录的结构可以完全不同
  mongoDB是有索引概念的,可以建立index和Unique类型的索引
  mongoDB中collection的结构:
  你不能把collection惯性的想象成一个二维表(table),因为它与sql数据库中的table有很多的不同。
  mongo的collection你可以想象成一个笔记本,每一页就是一条记录,而每一页上所记录的东西就是一个节点可以完全不同的数组(array)。mongoDB在系统层面为每张collection的每条记录自动创建唯一索引——_id来检索和定位记录。
  以下,我总结了collection的用法,抛砖引玉:
  1,名片式:
  用来存储不能完全定义出结构和节点的信息。
  一张collection是一个笔记本,每一页记录一个人的名片,基本上来讲名片的结构可能是:姓名,公司名,网址,电话,Email。
  有些人只会有“姓名”,“公司名”,其他的项目没有,这在mysql中也好实现,没有的项目就是null么,但是还有个可能性是,有些人要有“别 名”、“手机”、“QQ号码”等,这如果在mysql中来说,就要为这张表添加字段才可以,如果这些属性一再多下去,那就得分表连查了。而在mongo 中,只需要在insert或者update的时候为对应记录增加节点就可以了,也就是说可能A的那一页有“姓名”,“公司名”,而B的那一页可能是“姓 名”“公司名”“年龄”“QQ号”“出生地”…
  这样一来,将同一类型的数据都放在了一个collection但有保持了每个个体内容的弹性。
  2,菜单式:
  这种方式比较适合存储配置性的信息。
  请抬头看一下你目前浏览器的菜单:我用的是firefox浏览器,现在的菜单是:文件、编辑、查看、历史、书签、工具、帮助。
  其中,“查看”的子菜单是:工具栏(含菜单栏、导航工具栏、书签工具栏…),状态栏,侧栏(含历史、书签)…
  每个菜单项都还有自己的子项、子子项,但是他们之间又没有一致性。
  我们可以用collection的每一条记录存储一个菜单项的全部内容,而我想操作“文件”的内容的时候,可以直接选择type为“文件”的记录来操作。
  3,表格式:
  这种方式和传统的mysql表很类似,用来存储完整性强,查询和排序条件较多的记录。
  mongoDB的介绍
  官方网站:http://www.mongodb.org/
  官方开发者手册:http://www.mongodb.org/display/DOCS/Developer+Zone
  官方管理员手册:http://www.mongodb.org/display/DOCS/Admin+Zone
  官方中文手册:http://www.mongodb.org/display/DOCSCN/Home (不够及时)
  什么是mongodb:http://baike.baidu.com/view/3385614.htm (百度百科)
  mongoDB的安装(win)
  下载想要安装的mongoDB的对应win版本:
  http://www.mongodb.org/downloads
  mongoDB在win下算是个绿色软件,不用一下一下的点Next,下载对应版本后:
  1,将内容解压到你想要放置的对应目录,如:d:\mongodb\
  2,建立一个目录,用来放数据,如d:\mongodata\
  3,将mongoDB安装为windows服务:
  cmd下   d:\mongodb\bin\mongod.exe –dbpath=d:\mongodata –install
  之后你就可以在“服务”里面找到mongodb,关闭或者启动它。
  可用mongod -help查看配置参数
  官方说明书:http://www.mongodb.org/display/DOCS/Quickstart+Windows
  让php支持mongoDB
  php连接mongodb是个很简单的事情,官方文档在:http://www.mongodb.org/display/DOCS/PHP+Language+Center
  1,下载对应的库文件
  http://github.com/mongodb/mongo-php-driver/downloads 到这里选择适合你系统的dll文件(vc6是apache用户的,vc9是IIS用的)。
  2,zip包中有个php_mongo.dll,放到你对应php的扩展目录,例如我的目录在D:\LAMP\php\ext
  3,在你的php.ini中加入:extension=php_mongo.dll
  4,重启apache,在phpinfo()中查看是否有一项关于mongo的~
  如果出现关于mongo的清单,说明当前环境的php已经支持Mongodb了。如果没有,需要检查一下对应的php_mongo.dll是否与你当前的php版本对应,或者查看一下你的php扩展目录配置是否有效。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-627315-1-1.html 上篇帖子: 基于MongoDB进行分布式数据存储的步骤 下篇帖子: MONGODB::COMMAND与PHP
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表