MongoDB使用方法

1.MongoDB介绍

 

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。

在高负载的情况下,添加更多的节点,可以保证服务器性能。

MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

 

#由于解压安装,每次开启mongodb服务端需要输入命令

1)sudo /usr/local/mongodb/bin/mongod --config /etc/mongodb.conf

2)mongo

#如果命令安装,开启服务端需要输入命令

 sudo service mongodb start

#查询mongodb状态

 sudo systemctl status mongodb

#停止mongodb服务端

sudo service mongodb stop 

 

2. SQL语言

1)数据库

 
  1. show dbs #列出数据库

  2. use test #选择一个数据库,没有默认创建

  3. db.status() #查看当前数据库状态

  4. sb.dropDatabase() #删除数据库

2)集合

 
  1. show collections #列出所有集合

  2. db.createCollection('day1') #创建集合day1

  3. db.day1.drop() #删除集合day1

  4. db.day1.find() #查看集合day1所有文档

  5. db.day1.insert({'name':'lisi','age':20}) # 集合中插入文档,默认分配id

  6. db.day1.insert({'_id':'0422','name':'zhangsan','age':21}) # 集合中插入文档,自己设置id

  7.  

3)文档

 
  1. db.sub.update({'age':20},{'age':30}) #直接替换匹配的第一条,破坏之前的结构

  2. db.sub.update({'age':20},{$set:{'age':30}}) #更改匹配的第一条,不破坏之前的结构

  3. db.sub.update({'age':20},{$set:{'age':30}},{'multi':true}) #更改所有匹配的文档

  4. db.sub.findOne() # 列出第一条

  5. db.sub.remove() #删除所有内容

  6. db.sub.remove({'name':'lisi'}) #删除多条

  7. db.sub.remove({'name':'lisi'}, {'justOne':true}) #删除匹配的第一条

4 )逻辑元算符

 
  1. $lt

  2. $gt

  3. $gte

  4. $ne

  5. db.sub.find({num:{$gte:20}})

  6. db.sub.find({num:{$in:[5,30]})

  7. 与或 ,和 $or

  8. db.sub.find().limit(5).skip(2) #分页显示

3 . 自我感觉学习完数据库(mysql,mongodb,redis)对于软件的安装、使用、卸载简直上了一个台阶,很受益。

尤其对于分布式的理解(每一个机器上都有一个本地数据库,就是一台服务器上取数据,多台服务器共享)

 

实际场景的分布式文件存储系统中如何确定改用哪种存储方案呢,可以采用如下方式: 
1). 对于用户上传的任何文件,在客户端进行大小判断; 
2). 当文件大小小于16MB时,则直接存储到MOngoDB普通集合中 
3). 当文件大小大于16MB时,上传到GridFS中,利用集合fs.files以及fs.chunks来保存文件 
4). 当用户下载文件时,再根据不同文件的大小属性不同到不同的集合中查找

另外,对于fs.chunks文件我们可以分片存储,片键可以选择索引字段{“files_id”},该字段尽量保证了此文件在所有被分割的chunk都在同一个片上,fs.files不需要分片,此集合只保存文件的元数据信息,数据量不大,同时还可以设置默认块大小(256KB)

需要注意的是:GridFS并不适合小文件存储,因为从GridFS中读取文件涉及到两次查询操作,先查询fs.files集合,再查询fs.chunks集合,chunks合并后获取整个文件。

需要注意的另一点是:文件分块大小为256KB,而分片的块大小默认64MB,不要搞混了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值