一、安装MongoDB的步骤

注:本教程全部统一采用hadoop用户名登录Linux系统,用户名:hadoop 密码:hadoop

  • ​ 首先,在Linux系统中打开一个终端,执行如下命令导入公共秘钥到包管理器中:
 $sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
  • ​ 然后,创建MongoDB的文件列表,命令如下:
$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb.list
  • 执行如下命令来更新包管理器
$ sudo apt-get update
  • 最后,执行如下命令安装MongoDB:
$ sudo apt-get install -y mongodb-org
  • 安装完成后,在终端输入以下命令查看MongoDB版本:
$ mongo -version
  • 安装成功以后,启动MongoDB的命令如下:
$ systemctl daemon-reload
$ systemctl start mongod
  • 默认设置下,MongoDB是随Ubuntu启动而自动启动的。可以输入以下命令查看是否启动成功:
$ pgrep mongo -l #注意:-l是英文字母l,不是阿拉伯数字1
  • 使用MongoDB结束后,关闭MongoDB的命令如下:
$ sudo service mongodb stop​

  

二、使用shell命令操作MongoDB

1、进入MongoDB的shell命令

  • 在Linux系统打开一个终端,输入如下命令启动MongoDB:(密码为:hadoop)
$ systemctl daemon-reload
$ systemctl start mongod
  • 再输入如下命令进入MongoDB Shell模式:
$ mongo
  • 进入MongoDB Shell模式以后,默认连接的数据库是test数据库,可以在命令提示符“>”后面输入各种Shell命令来操作MongoDB数据库。

2、常用操作命令

如果要创建一个名称为“School”的数据库,需要先运行“use School”命令,之后做一些操作,比如,使用命令“db.createCollection('teacher')”创建集合,这样就可以创建一个名称为“School”的数据库,执行过程如下。

(1)切换到School数据库(​ 注意,MongoDB无需预创建School数据库,在使用时会自动创建。)

> use school

补充:

use命令:如果数据库不存在,则创建数据库,否则切换到指定数据库;

如果发现刚刚敲错了,写成了use school1;这时候,希望删除school1这个数据库,就切换到该数据库下,再键入删除命令;

>use school1;
>db.dropDatabase();  

(2)创建集合

> db.createCollection('teacher')

(3)插入数据(与数据库创建类似,插入数据时也会自动创建集合。)

插入数据有两种方式:insert和save,具体命令如下: 

> db.student.insert({_id:1, sname: 'zhangsan', sage: 20})  #_id可选
> db.student.save({_id:1, sname: 'zhangsan', sage: 22}) #_id可选

这两种方式,其插入的数据中id字段均可不写,系统会自动生成一个唯一的id来标识本条数据。

insert和save两者的区别在于:

  • 在手动插入id 字段时,如果id已经存在,insert不做操作,而save会做更新操作;
  • 如果不加_id字段,两者作用相同,都是插入数据 

添加的数据的结构是松散的,只要是bson格式均可,列属性均不固定,以实际添加的数据为准。可以先定义数据再插入,这样就可以一次性插入多条数据,如下图所示。

(4)查找数据

> db.youCollection.find(criteria, filterDisplay)​

备注:

criteria:查询条件,可选

filterDisplay:筛选显示部分数据,如显示指定列数据,可选(当选择时,第一个参数不可省略,若查询条件为空,可用{}做占位符)

  •  查询所有记录 ( 该命令相当于关系数据库的SQL 语句“select * from student”。)
> db.student.find()
  •  查询sname='lisi'的记录(该命令相当于关系数据库的SQL 语句“select * from student where sname='lisi'”。)
> db.student.find({sname: 'lisi'})
  •   查询指定列sname、sage数据
> db.student.find({},{sname:1, sage:1})

 该命令相当于关系数据库的SQL 语句“select sname,sage from student”。

其中,sname:1表示返回sname列,默认id字段也是返回的,可以添加id:0(意为不返回id),写成{sname: 1, sage: 1,id:0},就不会返回默认的_id字段了。 

  •  AND条件查询
> db.student.find({sname: 'zhangsan', sage: 22})  

该命令相当于关系数据库的SQL 语句“select * from student where sname = 'zhangsan' and sage = 22”。

  • OR条件查询
> db.student.find({$or: [{sage: 22}, {sage: 25}]})

 ​ 该命令相当于关系数据库的SQL 语句“select * from student where sage = 22 or sage = 25”。 

  • 格式化输出

对于查询结果,也可以采用pretty()进行格式化输出,命令执行结果如下图所示。

(5)修改数据

> db.youCollection.update(criteria, objNew, upsert, multi )
  • criteria:update的查询条件,类似sql update查询内where后面的
  • objNew:update 的对象和一些更新的操作(如$set)等,也可以理解为 sql update 查询内set后面的
  •  upsert:如果不存在update的记录,是否插入objNew, true为插入,默认是false,不插入。
  • multi:mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多余的记录全部更新。默认false,只修改匹配到的第一条数据。
  • 其中criteria和objNew是必选参数, upsert和 multi是可选参数

这里给出一个实例,语句如下:

> db.student.update({sname: 'lisi'}, {$set: {sage: 30}}, false, true)

该命令相当于关系数据库的SQL 语句“update student set sage =30 where sname = 'lisi';”。

(6)删除数据

> db.student.remove({sname: 'chenliu'})  

该命令相当于关系数据库的SQL 语句“delete from student where sname='chenliu'”。

(7)删除集合

> db.student.drop()

(8)退出MongoDB Shell模式

可以输入如下命令退出MongoDB Shell模式:

> exit

或者也可以直接按键盘的Ctrl+C组合键,退出Shell命令模式。

MongoDB的安装与简单使用的更多相关文章

  1. python操作三大主流数据库(7)python操作mongodb数据库①mongodb的安装和简单使用

    python操作mongodb数据库①mongodb的安装和简单使用 参考文档:中文版:http://www.mongoing.com/docs/crud.html英文版:https://docs.m ...

  2. MongoDB下载安装与简单增删改查

    Windows下MongoDB的安装和配置.启动和停止 下载地址:MongoDB的官方下载网址是:https://www.mongodb.org/downloads 安装步骤1. 点击下载的mongo ...

  3. mongodb的安装与简单操作

    MongoDB中文社区:http://www.mongoing.com     数据库的使用场景 SQL(关系型数据库):MySQL.SQLServer  --->磁盘操作 1.高度事务性的场景 ...

  4. MongoDB在Windows下安装、Shell客户端的使用、Bson扩充的数据类型、MongoVUE可视化工具安装和简单使用、Robomongo可视化工具(2)

    一.Windows 下载安装 1.去http://www.mongodb.org/downloads下载,mongodb默认安装在C:\Program Files\MongoDB目录下,到F:\Off ...

  5. Mongodb的安装--简单快速

    由于需要在服务器安装mongodb,所以就对Mongodb的安装进行了了研究,在了解安装过程之前,先了解一下Mongodb,Mongodb是什么? 是什么? MongDB是结余关系数据库和非关系数据库 ...

  6. C#分布式缓存一:Couchbase的安装与简单使用

    一.简介 目前C#业界使用得最多的 Cache 系统主要是 Memcached和 Redis. 这两个 Cache 系统可以说是比较成熟的解决方案,也是很多系统当然的选择. Memcache的开发团队 ...

  7. MongoDB的安装 转

    第1章 MongoDB的安装 (黎明你好原创作品,转载请注明) 1.1 MongoDB简介 MongoDB是一个基于分布式文件存储的数据库开源项目.由C++语言编写,旨在为WEB应用提供可护展的高性能 ...

  8. MongoDB下载安装

    MongoDB官方下载地址:http://www.mongodb.org/ 一.在Windows平台下的安装 1.下载MongoDB数据库 2.设置MongoDB程序存放目录 下载完数据库后,直接解压 ...

  9. MongoDB(二)——安装配置了解

    前边介绍了MongoDB的大概理论知识,这篇来对MongoDB进行一下安装使用,支持安装在windows和linux上,当然了很多其它情况下我们是安装在linux上,由于毕竟server用linux的 ...

随机推荐

  1. First Step in luogu.

    2019-11-21 21:58:32 在洛谷正式迈出第一步!!

  2. IScroll Unable to preventDefault inside passive event listener due to target being treated as passive

    最近两天企业微信下IScroll突然无法滚动了,特别慢,之前好好的,发现主要是有红色的Unable to preventDefault inside passive event listener du ...

  3. PyCharm创建Django项目并连接mysql数据库

    0. 安装Django pip install django 1. 新建项目 注:我的Pycharm为社区版,创建项目时,File->New Project- 显示为: ​ 注意勾选内容. 如果 ...

  4. Java匹马行天下之JavaSE核心技术——注解

    Java注解 一.什么是注解 注解(Annotation)相当于一种标记,在程序中加入注解就等于为程序打上某种标记,没有加,则等于没有任何标记,以后,javac编译器.开发工具和其他程序可以通过反射来 ...

  5. 使用 Spring Boot 构建 RESTful API

    1. 使用 Idea 创建 Spring Initializer 项目 在创建项目的对话框中添加 Web 和 Lombok,或者建立项目后在 pom.xml 中添加依赖: <dependency ...

  6. 数据库IN查询参数化改造的方法

    // 批量查询的 2019-05-14 if (!string.IsNullOrWhiteSpace(Request["userCodes"])) { string userCod ...

  7. JS 对象属性名排序

    问题,对象属性名排序,如: var data = { A:[], D:[], B:{} } 调整为=> var data = { A:[], B:[], D:{} } 方法一: for,in,把 ...

  8. 我是如何一步步编码完成万仓网ERP系统的(七)产品库设计 3.品牌图片跨域上传

    https://www.cnblogs.com/smh188/p/11533668.html(我是如何一步步编码完成万仓网ERP系统的(一)系统架构) https://www.cnblogs.com/ ...

  9. redis的主从复制,哨兵值守

    环境: 主服务器:192.168.10.10    Centos 7  redis-5.0.4 从服务器:192.168.10.129  Centos 7  redis-5.0.4 从服务器:192. ...

  10. java包装类和值类型的关系

    java包装类总是让人疑惑 它与值类型到底是怎么样一种关系? 本文将以int和Integer为例来探讨它们的关系 java值类型有int short char boolean byte long fl ...