MongoDB

Nosql:(非关系型),MongoDB就是一种非关系型的数据库。mongoDB也是nosql类的产品。

Member,redis等等都属于nosql类的产品。

Mongodb是面向文档的数据库。一条记录叫做:文档。把多个文档放到一起叫做:集合【mysql中的表】

MongoDB和MySql最大的区别?

  1. MongoDB是无模式的(无需建表)
  1. Mongodb使用JavaScript语言操作。mysql使用的是SQL。
  2. MongoDB以json形式保存一条记录,读写方面性能非常快。相对数据来说:事务、视图、存储过程都没有。
  3. MongoDB扩展很容易(用MONGODB实现分表、读写分离、分布式存储 非常容易,配置一下即可),MySql的扩展也可以做到,但是性能和维护成本非常高。

所以,MONGDB适合存储:数据结构简单、数据量非常大、高并发读写的操作。

MONGODB在保存关系比较复杂的数据时不太容易,不支持关系和连表操作,相对数据库中的一对多和多对多的关系不如mysql方便。

非常适合:数据量非常大、数据结构单一的数据存储(比如,投票、日志等等)。

实际操作

安装mongodb

  1. 先创建一个目录(用来存放mongodb中的数据)和一个文件(mongdb的日志文件)
  2. 执行mongodb中的mongod.exe命令进行安装:
    1. 打开服务窗口查看并启动
  3. 运行mongodb.exe客户端程序连接到服务器上进行操作
      1. 扩展:mongodb默认没有开启权限验证机制,如果要开启需要先创建好管理员账号才行。
      2. 在客户端就可以执行JavaScript代码了

客户端的使用

db变量的使用-》当前正在使用的数据库

切换数据库:use 库名     //数据库可以是不存在的,无模式。不需创建

查看所有的数据库:show dbs

如何查看都有那些命令:帮助 系统:

 

 

 

  1. db.help()

      数据库级别的帮助

  2.  

 

Db.集合名字.help

集合级别的帮助

例1:向php39数据库中的商品集合中插入一个商品的文档。

 

扩展:插入记录时如果记录中没有_id字段,Mongdb会自动添加上一个_id字段,这个字段的类型是ObjectId,值是一个字符串,这个字符串在全球是唯一的。

特点:mongodb执行的每个操作都是瞬间完成的,客户端执行命令时直接把命令发给服务器就接着处理下一个,不会等待服务器返回结果,所以客户端也不知道这次操作有没有成功,如果要知道结果还需要执行另一个命令:

特点:同一个集合中可以插入完全不相干的记录

官方不推荐这样保存数据,最好还是把数据存到相应的集合中不要混着存,会影响性能

例2:查询商品集合所有的商品

例3:修改一条记录db.表名.findOne({"条件"})

例4:删除一个集合db.表名.drop()

例5:取出年龄小于10的文档,改成年龄为99

第三个参数true的意思是,如果没有满足条件的记录,是否添加这条记录。第四个参数是把所有满足条件的都修改,默认false只修改一条记录。

mongodb权限机制

启动权限机制之前要先在MONGODB中添加管理员账号:

注意:

  1. 用户要属于某一个数据库
  2. 如果一个账号属于admin数据库,那么就是超级管理员
  3. 在使用账号登录时必须先切换到这个账号所在的数据库
  4. 添加管理员账号

    Php39下的普通账号

    以上是3版本下面是2版本

    重新安装mongodb,安装时添加一个--auth参数

先把安装好的从服务中删除

重新安装mongodb,安装时添加一个--auth参数

重新安装完成之后需要在服务中开启服务,services.msc

现在就开启了权限机制

此时,如果不登录就不能操作数据库

必须先登录才行:

超级管理员登录必须先切换到admin数据库

 

如何使用PHP操作mongodb

php操作mongodb的代码基本上和命令行差不多。

要执行这个代码有个前提:php服务器上安装了MONGODB的扩展。端口号可以省略

php如何安装mongodb扩展?

http://localhost/?phpinfo=1

先下载一个符合php服务器环境的php_mongo.dll文件

把dll文件复制到扩展文件下

修改php.ini文件添加一行

wamp修改apache下的phpforapache.ini

重启apache即可。

 

 

 

数据类型

基本上所有的类型都支持+ObjectId+正则表达式+函数【function(){}】….

 

mongodb存文件

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值