mongodb

一、mongodb的介绍

    MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的,语法有点类似javascript面向对象的查询语言,它是一个面向集合的、模式自由的文档型数据库。

二、基本的概念

    1、文档:

        文档是mongodb里面存储的基本单位类似于关系型数据库里面的行,是键值对形式组合的。

        {键1:值1,键2:值2}

        {name:’xiaoming’,age:12,email:’nihao@sohu.com’}    {name:’xiaoming’,age:’12’}

        MongoDB 中以文档的方式存取记录,如一条记录格式如下:

        { “username”:”Tom”, “age”:10 }    { "username":"Tom" , "age" : "10" }     {“Username”:”Tom”,”age”:10}

        注意:

            1.以上是两个不同的文档,MongoDB区分大小写的数据类型,第一个age字段是数字类型,第二个age是字符串类型。

            2. 每一个文档尺寸不能超过16M

    2、集合的概念:

        多个文档组合成一个集合。(类似于关系型数据库里面的表)

        无模式:在一个集合里面可以存储不同格式的文档。

        {name:’xiaoming’}{age:“12”,’email’:’nihao@sohu.com’}

        模式自由:集合中没有行和列的概念。

        MongoDB中的集合不用创建没有结构,所以可以放不同格式的文档。

    3、数据库(和关系型数据库概念类似)

        多个集合组合成一个数据库,Mongodb中的数据库和Mysql中的数据库概念类似,只是无需创建

        一个数据库中可以有多个集合。一个集合中可以有多个文档。

        注意:mongodb的软件架构:c /s 架构,数据存储是存储到硬盘里面的。

三、体系结构

    ae4c2a7605da57bef4b95b0d259196fab2b.jpgb673dc21cb737455e4d680cbef93169237d.jpg

四、安装

    1、软件下载解压到指定目录

        1b8bc0d85f323ad61be8cb7d11020bdf603.jpg

    2、新建一个目录和文件

        新建一个目录,用于存储数据文件,新建一个文件,用于存储日志文件

        173e47a832b220be5def33a30d33f954434.jpg

    3、以管理员的方式打开cmd窗口,进入mongodb的bin目录

        mongod.exe –install –-dbpath 数据库存储目录(完整路径)--logpath 日志文件的名称(完整路径)

        9ccf44f4316ffd63a110e8c2abc55834f66.jpg

        常用的命令:

            --dbpath : 数据存放目录    --logpath : 日志文件路径    --bind_ip : 绑定IP地址

            --port : 监听端口号,默认27017    --maxConns : 最大并发连接数

            --logappend : 日志追加到现有日志文件中,而不是覆盖    --keyFile : 复制数据时使用的私有key    

            --auth : 安全模式运行,登录时需要用户名密码。    --cpu : 定期显示CPU和IO的利用率    

            --directoryperdb : 每个数据库中的数据存在一个单独的目录中    --journal : 启动日志

            --nohttpinterface : 不启动WEB服务器接口    --noscripting : 关闭 shell    --repair : 修复所有的数据库

            --nssize : 每个数据库的.ns文件的尺寸,默认是16M    --help : 查看所有的参数项

    4、启动服务

        06d40b09a165bf9b2c22cf822e778c3d644.jpgaa4333c67633c3dc3de8bcfe8dab1915887.jpg

    5、客户端连接服务器

        b3c6c912ba31322964bc782e01fdf34af90.jpg

        默认连接本机的27017,如果要连接其他服务器,可以执行: mongo.exe  ip地址:端口号/数据库名  (默认连接test数据库)

        如:mongo.exe localhost:27017/abc -->连接本地27017端口,abc数据库

        注:可以通过 mongo.exe –help 查看更多命令

五、常用入门命令

    1、创建数据库

        use 数据库名称

        要注意:如果数据库名称已经存在,则是切换,如果不存在则是创建,如果创建了没有任何的一些操作,则该数据库会自动删除。

    2、查询数据库

        show dbs

        db:可以理解成一个变量,是指当前数据库。比如要查看当前是在哪个数据库下面的操作。

    3、向数据库里面添加数据

        db.集合名.insert({键1:值1,键2:值2})

        cbbb3a38ca835a87c8f0f7a52e1bdaa2b38.jpg

    4、查看当前数据库下面的集合

        a1f34ae214d1d3c2179fc137f813668938d.jpg

    5、删除数据库里面的数据

        db.集合名.remove({条件})

        295fdf76d57471be9da89b07953d2647a4a.jpg

    6、删除数据库里面的集合

        db.集合名.drop()

        a7e0d100141b2d35da231ff6be8bbcb4954.jpg

    7、删除数据库:

        db.dropDatabase()

        ebcb7c25786a863009395c744fc37cef6c5.jpg

六、基本的一些命令操作(增删改查操作)

    1、添加数据

        db.集合名.insert({键值对})

        可以使用js的语法进行批量添加数据

        for(var i=1;i<=10;i++){

            db.class.insert(name:’xiaohei’+I,age:i)

        }

        954a5b930884eb82e62dd27470fdd522974.jpg

        每添加一个文档,会自动创建一个_id的键,_id的键我们也可以自己指定的,但是不能重复。

        注: _id 字段是系统自动生成的,也可以自己指定任何类型的字,但值不能重复。

        save操作: save操作和insert操作区别在于当遇到_id相同的情况下,save完成更新操作。insert则会报错。

        09145178571dc71aaf018ed58a075ea285b.jpg

        在mongodb文档里面存储的数据格式有哪些?

        1973449d85f7bf60bea9dc4414981196183.jpg

    2、删除数据

        db.集合名.remove{条件}

        例1:删除 class 集合中年龄等于10的文档

        8793b3e4c94e2b20548d3fb2a44ee58f9e5.jpg

        例2:删除class集合中年龄大于7的文档

        b6ec247ff871d1d9cbc48bd239e55c16aaa.jpg

        常用操作符:

            $lt , $lte , $gt , $gte   ( < , <= , > , >= ), $ne ( <> ) ,$in , $nin ,  $or ,  $not,  $mod (取模),  $exists, $where

    3、修改数据

        语法: update(条件,数据, 是否新增, 是否修改多条)

        例1:修改年龄等于5的用户的名称为tom

        5053d29a090f8fb7ed8dcf60760176447b1.jpg这样改会丢失键值

        使用修改器进行修改:$inc : 加一个数字    $set : 修改某一个字段,如果该字段不存在就增这个字段

        b0ffcca491334c1a8c0653a4a8e7dd4d577.jpg

        例2:把用户名为xiaohei1的年龄添加10岁

        47d124fc856aa9cc410cb79fd6aa93433c0.jpg

    4、查询数据

        find( 查询条件 , 返回的键)

        查询时只返回某几个字段 

            db.user.find({}, {"age":1})  --> 列出所有人的 age 字段

            db.user.find({} , {"age": 0} )  -->  除了age字段,其他字段都列出来

        例:查询年龄小于6的用户:db.user.find( {"age" : { "$lt" : 6 } } )

        db.collname.count():返回集合中有多少个文档。 

        db.collname.find().sort({age:1})根据年龄升序 

        db.collname.find().sort({age:-1})根据年龄降序

        例:只想显示前3个文档:db.集合名.find().limit(3)

        例:显示从3个到第5个文档:db.集合名.find().skip(2).limit(3)

七、Mongodb 中管理账号 

    要登录使用mongodb服务器需要权限验证。

    注:用户要属于某一个数据库

    1、创建用户

        db.addUser(用户名,密码,是否只读(只读true,默认false))

        给php数据库创建一个普通的账号

        e556570d34d92837b3f5dff0cf2c4f3f348.jpg

        创建一个管理员账号,管理员账号可以操作任何的数据库的

        ccfa86c519104dcdc53901ebab26318d452.jpg

        给php数据库创建一个普通的账号,该账号只能查询

        bdf95a0252795c71af4031da0b86155e8a3.jpg

    2、权限验证

        语法:db.auth(用户名,密码) --> 登录

        要关闭mongodb服务器,重新安装,不用担心里面的数据会丢失

        在安装时添加一个参数即可,即--auth

        mongod.exe –install –dbpath 数据库存储目录  --logpath 日志文件名称  --auth

        启动后,登录是不需要验证的,当切换数据库时,要进行验证,执行auth(),如果没有验证通过 ,则无法操作数据库。

        具体步骤:(1)停止服务(2)卸载服务(3)重新安装(4)启动(5)登录

        b90bf221ad1ebf22897564494001679261e.jpg74e9340f621f4d4c1068c9866b3560eeb31.jpg

        登录后,切换到数据库

        09b4fab21b5f645b3894f4b924b0d1de22c.jpg

    3、查看账号、删除账号

        db.system.users.find()    db.system.users.remove({“user”:”test”})  删除test 账号

八、数据库的备份

    备份 :mongodump –u用户名  -p密码  -d 要备份的数据库名 -o 输出目录

    d3d3aab1856e3dfd2fa6926404119c67dd6.jpg查看备份的数据b71de9e467cdb5593b656323b6d8690fe57.jpg

    恢复:mongorestore -d 恢复到的数据库名 --drop 备份文件目录

    b4c2491f9a59f67724e14eb2b2522eeaee0.jpg

九、php支持

    1、要安装php支持的扩展,扩展要注意和当前php的版本要一致

    2、把对应的扩展拷贝到 php的安装目录ext下面

        e9189e721fca272e03283ee81eb35f156d4.jpg

    3、打开php.ini文件加载扩展

        43fb73dc16eb2e44ce3ba7c6d5b846b58c6.jpg

    4、使用phpinfo函数进行测试是否加载成功

        17c50704a9fb907a1cb84a6fcaae95b3e07.jpg

十、php中应用

    3c1adb1c85dfb87634291d81b27f92d540c.jpg

转载于:https://my.oschina.net/u/2555277/blog/3015633

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值