MongoDB的安装和基本使用


一,MongoDB简介

官方网站:https://www.mongodb.com/

  • MongoDB 是一个基于分布式****,****文件存储的NoSQL数据库
  • C++语言编写,运行稳定,性能高,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
  • MongoDB是为快速开发互联网web应用而设计的数据库系统。
  • MongoDB的设计目标是极简单、灵活、作为Web应用栈的一部分。
  • MongoDB的数据模型是面向文档的,所谓文档是一种类似JSON的结构,简单理解MongoDB这个数据库中存在的是各种各样的Json.
  • MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

二,MongoDB特点:

模式自由 :可以把不同结构的文档存储在同一个数据库里
面向集合的存储:适合存储 JSON风格文件的形式
完整的索引支持:对任何属性可索引
复制和高可用性:支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。复制的主要目的是提供冗余及自动故障转移
自动分片:支持云级别的伸缩性:自动分片功能支持水平的数据库集群,可动态添加额外的机器
丰富的查询:支持丰富的查询表达方式,查询指令使用JSON形式的标记,可轻易查询文档中的内嵌的对象及数组
快速就地更新:查询优化器会分析查询表达式,并生成一个高效的查询计划
高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)


三、环境安装
下载地址:

https://www.mongodb.org/dl/linux/x86_64-ubuntu1604?_ga=2.191980332.746429608.1522813609-1727199571.1522813609

  • 下载mongodb的版本,两点注意
  • 根据业界规则,偶数为稳定版,如1.6.X,奇数为开发版,如1.7.X
  • 32bit的mongodb最大只能存放2G的数据,系统支持不好,64bit就没有限制。

1.2 解压安装
到官网,选择合适的版本下载解压
tar -zxvf mongodb-linux-x86_64-ubuntu1604-3.4.0.tgz
移动到/usr/local/目录下
sudo mv mongodb-linux-x86_64-ubuntu1604-3.4.0/ /usr/local/mongodb/
将可执行文件添加到PATH路径中
export PATH=/usr/local/mongodb/bin:$PATH


2.mongodb服务端

2.1 启动mongodb服务简写命令

默认会随机分配一个端口号:2275下次有可能是另外一个数
sudo /usr/local/mongodb/bin/mongod --config /etc/mongodb.conf

2.2 配置文件在/etc/mongod.conf

mongod.conf文件配置默认端口27017
打开配置文件命令:sudo subl /etc/mongod.conf
默认端口27017

MongoDB的安装和基本使用_第1张图片
图片1.png

4.MongoDB GUI可视化工具

Robomongo 0.9.0-RC4
下载地址:https://robomongo.org/
百度云链接:http://pan.baidu.com/s/1c1Vj6nQ 密码:gijn

MongoDB操作命令
  • 查询状态命令查询状态:sudo systemctl status mongodb
  • 启动mongodb服务端:sudo systemctl start mongodb
  • 停止mongodb服务端:sudo systemctl stop mongodb
  • 重新启动:sudo systemctl restart mongodb
  • 使用mongo进入客户端命令:mongo
  • 查看当前选择数据库名称db
  • 查看当前数据库信息db.stats()
  • 终端退出连接exitctrl+c

四、数据库操作

  • 查看所有数据库名称,列出所有在物理上存在的数据库show dbs
  • 数据库切换(选择)切换数据库use test
  • 查看当前数据库名称db
  • 创建数据库,创建py3数据库:use py3
    注意:当创建集合后数据库才出现db.createCollection(name, options)
  • 删除当前指向的数据库,如果数据库不存在,则什么db.dropDatabase()
  • 在某个数据库里面创建集合db.createCollection(name, options)
  • 不限制集合大小db.createCollection("stu")
  • 查看当前数据库的集合show collections
  • 删除集合db.集合名称.drop()

五,数据基本操作

  • 插入db.集合名称.insert(document)
  • example
    db.stu.insert({name:'gj',gender:1})
    (插入文档时,如果不指定_id参数,MongoDB会为文档分配一个唯一的ObjectId)也可以自己指定id
  • example
    s1={_id:'20160101',name:'hr'}
    s1.gender=0
    db.stu.insert(s1)
  • 简单查询db.集合名称.find()或者db.集合名称.find({})
  • 方法find():查询
    db.集合名称.find({条件文档})
  • 方法findOne():查询,只返回第一个文档
    db.集合名称.findOne({条件文档})
  • 方法pretty():将结果格式化
    db.集合名称.find({条件文档}).pretty()
  • 更新
  • db.集合名称.update(,,{upsert: ,multi:})
  • 2.把所有name是hr修改成gj:
  • db.stu.update({name:'hr'},{$set:{name:'gj'}},{multi:true})
  • 3.指定属性更新,通过操作符$set,数据结构不会被破坏,也是只修改一条
  • db.stu.insert({name:'hr',gender:0})
  • db.stu.update({name:'hr'},{$set:{name:'hys'}})
  • 4.默认值更新一条数据,只修改字段,不破坏数据
  • db.stu.update({},{$set:{name:'mnc'}})
  • 5.全文档找更新找到的第一条,把{name:'hr'}对应的这条修改{name:'mnc'},其他字段全部丢掉,如果有两条满足,会找到并且只更新的第一条,数据结构被破坏。
  • db.stu.update({name:'hr'},{name:'mnc'})
  • 6.修改多条匹配到的数据,多条操作一定要配合$set,否则会报错
    注意true和flase是小写
  • db.stu.update({},{$set:{gender:0}},{multi:true})
  • 语法
  • db.集合名称.save(document)
  • 如果文档的_id已经存在则修改,如果文档的_id不存在则添加
    注意,如果_id写成是id,则会把id当成key
  • example:db.stu.save({_id:'20160102','name':'yk',gender:1})
  • example:db.stu.save({_id:'20160102','name':'wyk'})
  • 删除
  • db.集合名称.remove(,{justOne: })
  • 全部删除db.stu.remove({})
  • 只删除匹配到的第一条db.stu.remove({gender:0},{justOne:true})

你可能感兴趣的:(MongoDB的安装和基本使用)