详细图解mongodb下载、安装、配置与使用

本文转自:详细图解mongodb下载、安装、配置与使用 - Minily - 博客园

mongodb是一个介于nosql数据库和mysql数据库之间的一个数据存储系统,它没有严格的数据格式,但同时支持复杂查询,而且自带sharding模式和Replica Set模式,支持分片模式,复制模式,自动故障处理,自动故障转移,自动扩容,全内容索引,动态查询等功能。扩展性和功能都比较强大。
据称,写入百万级的数据,MongoDB基本上十分钟以下可以解决。
虽然MongoDB是以数据库的身份存在,但也常有人将它与Redis、Memcache比较,可见Mongo的价值所在。

缺点
l 不支持事务操作
l 空间预分配,占用过大
l MongoDB没有如MySQL那样成熟的维护工具
l 无法进行关联表外键,不适用于关系多的数据
l 复杂聚合操作通过mapreduce创建,速度慢
| 模式自由, 自由灵活的文件存储格式带来的数据错误
| 删除数据集合后空间不会自动释放,只有用db.repairDatabase()去修复才能释放 - 慎用!

优点
l 文档结构的存储方式,能够更便捷的获取数据
l 内置GridFS,支持大容量的存储
l 内置Sharding,分片简单
l 海量数据下,性能优越
l 支持自动故障恢复(复制集)

MongoDB不可用于较复杂的业务逻辑,不擅长较频繁的请求,特别是涉及到多线程;多用于不频繁请求使用,交互逻辑少的设计中

一:下载、安装、配置、使用


为了方便下载,我把当时下载的这个解压包,放在百度的云盘上。
1、百度链接:百度网盘 请输入提取码 密码:ctyy
2、官方安装下载链接:Try MongoDB Products | MongoDB

op image.png

点击DOWNLOAD按钮,开始下载
不过值得注意的是,上次测试了最新版本,在官网下载安装之后没有mongo.exe和mongod.exe

因此我又卸载了官网版本,使用解压包重新安装,解压包版本如下:

op image.png

有兴趣的话还是可以从官网下载,然后观察下差异
安装过程一路Click Next然后 Click Install 等安装完成即可,下图安装路径,建议自定义一下,别安装在系统盘

op image.png

op image.png

op image.png

安装完成

二:配置使用

  1. 创建几个文件夹具体如下:数据库路径(data目录)、日志路径(logs目录)和日志文件(logs/mongo.log文件)
  2. 创建配置文件mongo.conf,文件内容如下:

op image.png

  1. 启动MongoDB服务
    mongod –config “D:\Mongo\mongo.conf”
    这个是使用自己刚刚在上面配置的配置文件来启动服务的。注意修改成自己的目录位置

op image.png

  1. 创建并启动MongoDB服务
    如果每次都如上操作,岂不是相当麻烦,按照如下命令来创建并启动MongoDB服务,就可以通过windows服务来管理MongoDB的启动和关闭了
    mongod –config “D:\Mongo\mongo.conf” –install –serviceName “MongoDB”
    net start MongoDB
    执行完之后,就可以去服务里看是否有成功创建了

op image.png

然后浏览器中输入http://127.0.0.1:27017,看到如下界面即说明启动成功

op image.png

  1. 接下来使用Robomongo客户端管理工具就可以连接,后因收购被改名为Robo 3T

op image.png

Nice,连接成功,如下图

op image.png

MongoDB会默认创建admin和local库,不过刚才安装的Mongodb并不需要权限验证,如果数据安全性不需要很高,则可以安装不需要验证的db库,通过设置服务器之间的白名单做到访问安全

快速启动和停止服务的快捷键
a. net start serviceName

b. net stop serviceName

最后,每次要在命令行使用mongo命令,都得进入到对应的bin目录下,这样很是麻烦,配置个系统环境变量,方便直接使用

op image.png

这样就可以直接在cmd命令行,不需要进行目录切换,就可以直接使用 mongo.exe 命令

op image.png

—————————常用命令以及T-SQL增删改查语句————————————–


查看表基本信息:db.getCollection(‘AUDCAD’).stats() 类似于MySql的EXPLAIN

op image.png


倒序查询数据:db.getCollection(‘AUDCAD’).find({}).sort({field:-1})

op image.png


show dbs; #查看全部数据库
show collections; #显示当前数据库中的集合(类似关系数据库中的表)
show users; #查看当前数据库的用户信息
use <db name="">; #切换数据库跟mysql一样
db;或者db.getName(); #查看当前所在数据库
db.help(); #显示数据库操作命令,里面有很多的命令
db.foo.help(); #显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令
db.foo.find(); #对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据)
db.foo.find( { a : 1 } ); #对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1
db.version(); #当前db版本
db.getMongo(); #查看当前db的连接机器地址
db.dropDatabase(); #删除数据库

op image.png


增(insert)
1.单条数据插入
db.user.insert({“name”:”jack”,”age”:20})
2.批量数据插入采用命令行for循环
删(remove)
1.不带参数会删除全部数据,且不可恢复,切记!
db.user.remove({“name”:”joe”})
改(update)
1.整体更新
var model = db.user.findOne({“name”:”jack”})
model.age=30
db.user.update({“name”:”jack”},model)
2.局部更新
● inc修改器——比如我们做一个在线用户状态记录,每次修改会在原有的基础上自增inc修改器——比如我们做一个在线用户状态记录,每次修改会在原有的基础上自增inc指定的值,如果“文档”中没有此key,则会创建key
db.user.update({“name”:”jack”},{inc:{“age”:30}}) //年龄增加30 ●inc:{“age”:30}}) //年龄增加30 ●set修改器
db.user.update({“name”:”jack”},{$set:{“age”:10}}) //年龄变为10</db>

3.upsert操作 —— 如果没有查到,就在数据库里面新增一条,使用起来很简单,将update的第三个参数设为true即可。
4.批量更新 —— 在mongodb中如果匹配多条,默认的情况下只更新第一条,那么如果我们有需求必须批量更新,那么在mongodb中实现也是很简单的,在update的第四个参数中设为true即可
查(find)
1.查找key=value的数据
db.collection.find({ “key” : value })

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值