您的位置:首页 > 数据库 > Mongodb

非关系型数据库MongoDB的配置方法

2018-03-24 16:37 357 查看
非关系型数据库的优势:
1. 性能
NOSQL是基于键值对的,可以想象成表中的主键和值的对应关系,而且不需要经过SQL层的解析,所以性能非常高。
2. 可扩展性
同样也是因为基于键值对,数据之间没有耦合性,所以非常容易水平扩展。
关系型数据库的优势:
1. 复杂查询
可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。
2. 事务支持
使得对于安全性能很高的数据访问要求得以实现。
mongodb是以文档形式存储类JSON格式的数据:
一:安装MongoDB,安装不多说,主要说下安装后的配置操作和一些命令行对数据库的操作。二:安装后手动在一个盘下新建一个data文件夹,再在这个文件夹下新建conf、db、dbConf这三个文件夹;三:a.在conf下手动创建mongo.conf文件,在编辑器中打开,键入两行语句(这里我的data文件创建在E盘根目录下):dbpath = E:\data\db
logpath = E:\data\dbConf\mongodb.log    b.在dbConf下手动创建mongodb.log
四:进入mongoDB安装目录下找到bin文件夹并进入,一般默认是在C:\Program Files\MongoDB\Server\3.4\bin,在bin下新建start.bat,用编辑器打开键入(当然用打开为txt键入内容后再改后缀也可以):mongod -f E:\data\conf\mongo.conf五:db文件让它空着,这个是数据库自动生成存储数据的文件;完成上面操作后在bin下双击start.bat文件打开,会弹出系统命令窗,如果不闪退不报错就说明数据库服务启动成功;
六:在刚刚的start.bar开启的前提下,再在当前目录双击mongo.exe,会弹出mongo命令窗,没有问题就可以创建数据库了

操作:

创建、切换数据库:use DATABASE_NAME  没有就帮你创建;
查询数据库:show dbs (如果没有查到,说明数据库没有数据)
显示所有集合:show collections
删除数据库:db.dropDatabase();
删除集合:db.COLLECTION_NAME(集合名).drop();
插入文档:db.COLLECTION_NAME.insert({“name”:”丑女无敌”})---MongoDB 使用 insert() 或 save() 方法向集合中插入文档;
获取文档 (行就是一条数据): db.COLLECTION_NAME.find({查询条件});
更新文档: db.COLLECTION_NAME.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}}) / save() 方法用传的文档来替换已有文档

删除文档:db.COLLECTION_NAME.remove(DELETION_CRITERIA,1) 第二个参数是justone意思跟true和1

复杂查询:

条件查询:(>) 大于 - $gt,(<) 小于 - $lt,(>=) 大于等于 - $gte,(<= ) 小于等于 - $lte;例如:db.ele.find({"age" : {$gt : 26}})

limit(): 读取指定数量的数据记录:
        db.COLLECTION_NAME.find().limit(NUMBER)

skip()方法来跳过指定数量的数据

       db.COLLECTION_NAME.find().skip(NUMBER)

排序、索引、聚合:

sort({“age”:-1})方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式, 1 为升序排列,而-1是用于降序。

ensureIndex({“bookId:1”}) 方法来创建索引,语法中 Key 值为你要创建的索引字段,1为指定按升序创建索引,如果你想按降序来创建索引指定为-1

aggregate()处理数据(诸如统计平均值,求和等):

   比如求年龄为28的人个数:(先使用$match找到28的人,再使用$gounp分组,_id表示按谁来分组,count,统计出来的放哪里,再使用$sum来算一个总的,参数1,表示算一个值)



安全模式

先创建用户:db.createUser({user:"yangj",pwd:"dba",roles:[{role:"userAdmin",db: "admin" },{role:"readWrite",db:"ele"}]})
开启权限验证:在配置中加上auth = true 
再通过db.auth("yangj","dba") 验证
删除用户:db.system.users.remove({user:"yangj"}); 必须使用最高权限的用户才能删除

有木有发现就这样操作数据库的话很头疼,当然有可视化操作窗口啦,例如:Robomongo、MongoChef
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mongodb NOSQL