设为首页 收藏本站
查看: 1042|回复: 0

[经验分享] mongodb一般操作

[复制链接]

尚未签到

发表于 2018-10-27 07:31:21 | 显示全部楼层 |阅读模式
  MongoDB是目前工作中经常使用到的NoSQL数据库。
  本博客只记录相关理论知识和技巧,涉及到实践的部分都会单开Blog来记录实践过程。
  -------------------------------------------------------------------------------
  体系结构:
  一般一个MongoDB Server包含一个实例和多个数据库,也可以多个实例和多个数据库。
  MongoDB默认数据目录是/data/db,它存储所有mongodb的数据文件。
  每个数据库都包含一个.ns文件和一些数据文件,而且这些数据文件会随着数据量的增加越来越多。
  MongoDB内部有预分配空间的机制,每个预分配的文件都用0进行填充。
  数据文件每新分配一次,它的大小都是上一个数据文件大小的2倍,每个数据文件最大2G。
  MongoDB每个集合和每个索引都对应一个命名空间,这些命名空间的元数据集中在16M的*.ns文件中,平均每个命名占用约 628 字节,也即整个数据库的命名空间的上限约为24000。
  如果每个集合有一个索引(比如默认的_id索引),那么最多可以创建12000个集合。如果索引数更多,则可创建的集合数就更少了。同时,如果集合数太多,一些操作也会变慢。
  要建立更多的集合的话,MongoDB 也是支持的,只需要在启动时加上“--nssize”参数,这样对应数据库的命名空间文件就可以变得更大以便保存更多的命名。这个命名空间文件(.ns文件)最大可以为 2G。
  每个命名空间对应的盘区不一定是连续的。与数据文件增长相同,每个命名空间对应的盘区大小都是随分配次数不断增长的。目的是为了平衡命名空间浪费的空间与保持一个命名空间数据的连续性。
  需要注意的一个命名空间$freelist,这个命名空间用于记录不再使用的盘区(被删除的Collection或索引)。每当命名空间需要分配新盘区时,会先查看$freelist是否有大小合适的盘区可以使用,如果有就回收空闲的磁盘空间。
  MongoDB默认存储数据目录为/data/db,默认端口为27017,默认HTTP端口为28017。
  MongoDB一般参数:
  Journal -- 开启日志,通过保存操作日志来降低单机故障恢复的时间。
  Syncdelay -- 系统同步刷新磁盘的时间,单位为秒,默认60秒。
  Repairpath – 执行repair时的临时目录,在如果没有开启journal,异常down机后重启,必须执行repair操作。
  执行mongod –help可以看见对大多数参数的解释。
  停止mongodb:
  (1)Ctrl + C
  (2)>mongo –port 20813
  >use admin
  >db.shutdownserver();
  (3)kill -2 PID
  不要预先插入集合,在第一次插入的时候会自动创建。
  使用find查询时,如果数据过多则不会全部显示,使用it命令继续迭代输出。
  >it (迭代输出)
  MongoDB每个文档都有一个默认的主键_id,这个主键名称是固定的。可以是MongoDB支持的任何数据类型,默认是ObjectId。但同一个集合中_id类型必须唯一,且不能插入值相同的数据。
  创建数据库
  use dbname
  这样就创建了一个数据库。如果什么都不操作离开的话,这个库就会被系统删除。
  show dbs //查看数据库
  show collections //查看集合
  基本操作
  db.collection.update({a:99},{$set:{a:2}}) //update
  db.collection.remove({a:2}) //remove {a:2}
  db.collection.remove() //remove all
  db.collection.find()
  db.collection.find({name:”mongo”})
  db.collection.findOne({name:”mongo”})
  db.collection.find({a:{$gt:3}}) // a > 3
  db.collection.find({a:{$lt:5}}) // a < 5
  db.collection.find({a:{$gte:3}}) // a >= 3
  db.collection.find({a:{$lte:5}}) // a

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-626922-1-1.html 上篇帖子: MongoDB安装为Windows服务方法与注意事项,重点是启动mongodb服务 下篇帖子: 关于mongodb 的Oplog
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表