參考MongoDB权威指南,学习阶段。大家多多交流问题。持续更新本文

MongoDB的长处
MongoDB具有丰富的数据模型,是面向文档的数据库。

easy扩展。能够在多台server之间切割数据。

开发人员仅仅需专注于编写应用。假设须要更大的数据。仅仅需在集群中加入新机器,然后让数据库来处理剩下的事情。

具有丰富的功能,比方索引,存储JavaScript,聚合,固定集合。文件存储。

不支持联接(join)和复杂的多行事物。

卓越的性能是MongoDB的主要目标,默认的存储引擎使用了内存映射文件。将内存管理工作交给操作系统。

简便的管理,MongoDB尽量让server自己管理数据库。除了启动数据库server之外。差点儿没有什么必要的管理操作。

假设主server挂掉,会自己主动切换到备server上。

MongoDB的下载和安装
首先去MongoDB官网,依据系统型号选择要下载的版本号。这里以centos64位为例
  1. #下载
  2. > wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.4.tgz
  3. > tar -zxvf mongodb-linux-x86_64-3.0.4.tgz
  4. > mv mongodb-linux-x86_64-3.0.4 /usr/local/mongodb
  5. > cd /usr/local/mongodb
  6. > mkdir db
  7. > mkdir logs
  8. > vim bin/mongodb.conf
  9. #加入下面内容
  10. dbpath=/usr/local/mongodb/db
  11. logpath=/usr/local/mongodb/logs/mongodb.log
  12. port=27017
  13. fork=true
  14. #又一次绑定mongodb的配置文件地址和訪问IP
  15. > /usr/local/mongodb/bin/mongod --bind_ip localhost -f /usr/local/mongodb/bin/mongodb.conf
  16. #启动MongoDB
  17. > /usr/local/mongodb/bin/mongod --config /usr/local/mongodb/bin/mongodb.conf
  18. #測试是否开启成功进入mongodb的shell模式
  19. > /usr/local/mongodb/bin/mongo
  20. > show dbs
  21. #没有异常的话安装启动成功了。
MongoDB的基本概念

文档是MongoDB中数据的基本单元,很相似关系型数据库中的行。

相似地。集合能够看做是没有模式的表。

MongoDB的单个实例能够容纳多个独立的数据库。每个都有自己的集合和权限。

MongoDB自带间接可是功能强大的JavaScript shell,这个工具对管理MongoDB实例和操作数据作用很大。

每个文档都有一个特殊的键”_id”,它在文档所处的集合中是唯一的。

MongoDB shell操作
执行shell
  1. #进入shell模式
  2. > /usr/local/mongodb/bin/mongo
  3. #执行简单的计算
  4. > x=200
  5. 200
  6. > x/5
  7. 40
  8. #还可充分利用JavaScript的标准库
  9. > Math.sin(Math.PI / 2)
  10. 1
  11. > "Hello World!".replace("World","MongoDB")
  12. Hello MongoDB!
  13. #shell (CRUD)
  14. #创建tets数据库
  15. > use test;
  16. > db
  17. test
  18. #创建一个用户
  19. > user={"name":"zhangsan","age":18};
  20. { "name" : "zhangsan", "age" : 18 }
  21. > db.users.insert(user);
  22. WriteResult({ "nInserted" : 1 })
  23. #查询
  24. #find会返回集合里的全部记录,在shell中最多显示20条数据,findOne会显示一条数据
  25. > db.users.findOne();
  26. {
  27. "_id" : ObjectId("55b59ee00882afbc7416fed4"),
  28. "name" : "zhangsan",
  29. "age" : 18
  30. }
  31. #更新
  32. #改动name=zhangsan用户的年龄为20,加入个性别sex=1
  33. > user.sex=1
  34. 1
  35. > user.age=20
  36. 20
  37. > db.users.update({"name":"zhangsan"},user);
  38. WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
  39. > db.users.findOne();
  40. {
  41. "_id" : ObjectId("55b59ee00882afbc7416fed4"),
  42. "name" : "zhangsan",
  43. "age" : 20,
  44. "sex" : 1
  45. }
  46. #删除
  47. > db.users.remove({"name":"zhangsan"});
  48. WriteResult({ "nRemoved" : 1 })
  49. #shell帮助文档
  50. > help
  51. db.help() help on db methods
  52. db.mycoll.help() help on collection methods
  53. sh.help() sharding helpers
  54. rs.help() replica set helpers
  55. help admin administrative help
  56. help connect connecting to a db help
  57. help keys key shortcuts
  58. help misc misc things to know
  59. help mr mapreduce
  60. show dbs show database names
  61. show collections show collections in current database
  62. show users show users in current database
  63. show profile show most recent system.profile entries with time >= 1ms
  64. show logs show the accessible logger names
  65. show log [name] prints out the last segment of log in memory, 'global' is default
  66. use <db_name> set current database
  67. db.foo.find() list objects in collection foo
  68. db.foo.find( { a : 1 } ) list objects in foo where a == 1
  69. it result of the last line evaluated; use to further iterate
  70. DBQuery.shellBatchSize = x set default number of items to display on shell
  71. exit quit the mongo shell
  72. #了解函数源码。比方update方法。输入的时候不带括号
  73. > db.foo.update

MongoDB学习——持续更新的更多相关文章

  1. 读书笔记|Windows 调试原理学习|持续更新

    关于调试方面的学习笔记,主要来源于<软件调试>的读书笔记和梦织未来论坛的视频教程 1.调试器使用一个死循环监听调试信息. DebugActiveProcess(PID);while(TRU ...

  2. flask插件全家桶集成学习---持续更新ing

    不得不说flask的设计要比django要小巧精妙的多了,没有那么臃肿,只保留核心功能,其他的都需要自己引入,即各种各样的插件来满足我们的需求,我这里记录一下自己学习项目中用的插件使用方法和一些技巧总 ...

  3. nodejs学习[持续更新]

    1.退出node process.exit(0) 2.把API从上往下全部看一遍,先混个眼熟. 3. end

  4. nodejs 语法学习(持续更新)

    合并objects var o1 = { a: 1 }; var o2 = { b: 2 }; var o3 = { c: 3 }; var obj = Object.assign(o1, o2, o ...

  5. canvas学习持续更新

    参考:菜鸟教程,canvas教程 绘制一个简单的矩形 <body> <canvas id="myCanvas" width="200" hei ...

  6. ASP.NET MVC 5 系列 学习笔记 目录 (持续更新...)

    前言: 记得当初培训的时候,学习的还是ASP.NET,现在回想一下,图片水印.统计人数.过滤器....HttpHandler是多么的经典! 不过后来接触到了MVC,便立马爱上了它.Model-View ...

  7. 【 js 基础 】【 源码学习 】源码设计 (持续更新)

    学习源码,除了学习对一些方法的更加聪明的代码实现,同时也要学习源码的设计,把握整体的架构.(推荐对源码有一定熟悉了之后,再看这篇文章) 目录结构:第一部分:zepto 设计分析第二部分:undersc ...

  8. java 学习必备的软件,持续更新中

    小编会持续更新在学习Java过程中需要的软件以及各种文件: 话不多说,看行动! 一:JDK (1)JDK1.8(*64): 链接:https://pan.baidu.com/s/1vM0jNXn2CT ...

  9. 状压dp(状态压缩&&dp结合)学习笔记(持续更新)

    嗯,作为一只蒟蒻,今天再次学习了状压dp(学习借鉴的博客) 但是,依旧懵逼·································· 这篇学习笔记是我个人对于状压dp的理解,如果有什么不对的 ...

随机推荐

  1. 洛谷——P2758 编辑距离

    P2758 编辑距离 题目描述 设A和B是两个字符串.我们要用最少的字符操作次数,将字符串A转换为字符串B.这里所说的字符操作共有三种: 1.删除一个字符: 2.插入一个字符: 3.将一个字符改为另一 ...

  2. 洛谷——P1226 取余运算||快速幂

    P1226 取余运算||快速幂 题目描述 输入b,p,k的值,求b^p mod k的值.其中b,p,k*k为长整型数. 输入输出格式 输入格式: 三个整数b,p,k. 输出格式: 输出“b^p mod ...

  3. 1353表达式括号匹配(stack)

    [题目描述] 假设一个表达式有英文字母(小写).运算符(+,—,*,/)和左右小(圆)括号构成,以“@”作为表达式的结束符.请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返回“YES”:否 ...

  4. Centos7下安装7za 及7za常用命令

    安装必备环境 yum install kernel-devel kernel-headers gcc-c++ make bzip2 下载源码(16.02版本,2016.10.04 publish) w ...

  5. Java高级架构师(一)第20节:X-gen生成需要的Action

    package cn.javass.themes.smvcsm.actions; import cn.javass.xgen.genconf.vo.ModuleConfModel; import cn ...

  6. Scala实战高手****第3课:在IDE下开发第一个Scala程序纯傻瓜式彻底透彻解析

  7. gns3 接口说明 转

    Dynamips 支持的模块首先从C7200 开始Slot 0:C7200-IO-FE <------> 支持1 个Fastethernet 接口C7200-IO-2FE <---- ...

  8. SpringBoot拦截器中service或者redis注入为空的问题

    原文:https://my.oschina.net/u/1790105/blog/1490098 这两天遇到SpringBoot拦截器中Bean无法注入问题.下面介绍我的思考过程和解决过程: 1.由于 ...

  9. 【mybatis】mybatis中insert 主键自增和不自增的插入情况【mysql】

    主键不自增:返回值是插入的条数 <insert id="add" parameterType="EStudent"> insert into TSt ...

  10. 13:在O(1)时间删除单链表节点

    题目:给定单项链表的头指针和一个节点指针.定义一个函数在O(1)时间删除该节点. 解析: 删除单向链表中的一个节点,常规做法是必须找到待删除节点的前一个节点才干实现.而这样做的时间复杂度是O(n).无 ...