MongoDB 是一款NoSql数据库,没有固定的模式,即同一个集合中的不同文档结构可以不同,如:第一条记录{name:”xiaoming”},第二条记录:{name:”xiaoli”,age:15},这在关系型数据库中是无法实现的。对于MongoDB,其中:collections即集合相当于关系型数据库的表,document文档相当于关系型数据库中的行。因此也就是说,MongoDB中的表中存储的数据可以不规定类型等。下面看一下MongoDB自带shell客户端的一些基本操作。
先来看一下,如何打开客户端shell。
如果将MongoDB配置进系统的环境变量,则直接在命令行输入即可:

mongo

若没有配置环境变量,则需要在对应目录中执行命令,如我本机装在D:\MongoDB,则在命令行输入下面命令即可:

D:\MongoDB\Server\3.0\bin\mongo

出现如下图,则正常启动,并连接test数据库:

linux mongodb 进入shell 在mongodb中如何打开shell_数据


下面来看一些简单的shell操作。

shell基本操作

  • 查看所有的数据库
show dbs

如图:

linux mongodb 进入shell 在mongodb中如何打开shell_关系型数据库_02

  • 创建一个数据库
use [database] (注:此时若不做其他操作直接退出,则MongoDB会删除该数据库)

如图:

linux mongodb 进入shell 在mongodb中如何打开shell_关系型数据库_03

  • 给指定数据库添加集合并添加文档记录
db.[collectionName].insert({...})

其中:db代表当前数据库
例如:向sample数据库中添加集合sample并插入文档记录{name:”sample1”}:

db.sample.insert({name:"sample1"})

如图:

linux mongodb 进入shell 在mongodb中如何打开shell_关系型数据库_04

  • 查看数据库中所有的集合collection
show collections

如图:

linux mongodb 进入shell 在mongodb中如何打开shell_数据库_05


从图中可以看出,我们添加了一个集合,插入了一条记录,数据库却有2个集合,通过查看内容,可以看出,system.indexes集合是为了sample集合添加主键_id和索引等,而sample集合是真正我们添加的集合。

  • 查询指定集合的数据
db.[collection].find()  --查询全部文档记录
db.[collection].findOne()   --查询第一条文档记录

这里,我们再插入几条文档记录到sample集合中,查询所有:

db.sample.find()

结果如图:

linux mongodb 进入shell 在mongodb中如何打开shell_关系型数据库_06


查询第一条文档:

db.sample.findOne()

结果如图:

linux mongodb 进入shell 在mongodb中如何打开shell_关系型数据库_07

  • 更新文档数据
db.[collection].update({查询条件},{$set:{更新内容}})

例如:

db.sample.update({name:"sample3"},{$set:{name:"samplenew"}})

这里$set相当于一个设置器,更新器的存在,更新及查询结果如下图:

linux mongodb 进入shell 在mongodb中如何打开shell_关系型数据库_08

  • 删除集合中的数据
db.[collection].remove({删除条件})

如:

db.sample.remove({age:25})

删除结果如图:

linux mongodb 进入shell 在mongodb中如何打开shell_数据_09

  • 删除数据库中的集合
db.[collection].drop()

我们来删除sample集合:

db.sample.drop()

linux mongodb 进入shell 在mongodb中如何打开shell_数据库_10

  • 删除数据库
db.dropDatabase()

linux mongodb 进入shell 在mongodb中如何打开shell_数据_11

MongoDB的客户端shell基本操作就介绍这些,更多的命令可以查看MongoDB官方文档或者shell的help。