一、安装MongoDB的步骤
注:本教程全部统一采用hadoop用户名登录Linux系统,用户名:hadoop 密码:hadoop
$sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
$ 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
$ sudo apt-get install -y mongodb-org
$ mongo -version
$ systemctl daemon-reload $ systemctl start mongod
$ pgrep mongo -l #注意:-l是英文字母l,不是阿拉伯数字1
$ sudo service mongodb stop?
二、使用shell命令操作MongoDB
1、进入MongoDB的shell命令
$ systemctl daemon-reload $ systemctl start mongod
$ mongo
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两者的区别在于:
添加的数据的结构是松散的,只要是bson格式均可,列属性均不固定,以实际添加的数据为准。可以先定义数据再插入,这样就可以一次性插入多条数据,如下图所示。
(4)查找数据
> db.youCollection.find(criteria, filterDisplay)?
备注:
criteria:查询条件,可选
filterDisplay:筛选显示部分数据,如显示指定列数据,可选(当选择时,第一个参数不可省略,若查询条件为空,可用{}做占位符)
> db.student.find()
> db.student.find({sname: ‘lisi‘})
> 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字段了。
> db.student.find({sname: ‘zhangsan‘, sage: 22})
该命令相当于关系数据库的SQL 语句“select * from student where sname = ‘zhangsan‘ and sage = 22”。
> 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 )
这里给出一个实例,语句如下:
> 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命令模式。
?
use
命令:如果数据库不存在,则创建数据库,否则切换到指定数据库;
原文:https://www.cnblogs.com/py2019/p/11988267.html