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数据库:
下面来看一些简单的shell操作。
shell基本操作
- 查看所有的数据库
show dbs
如图:
- 创建一个数据库
use [database] (注:此时若不做其他操作直接退出,则MongoDB会删除该数据库)
如图:
- 给指定数据库添加集合并添加文档记录
db.[collectionName].insert({...})
其中:db代表当前数据库
例如:向sample数据库中添加集合sample并插入文档记录{name:”sample1”}:
db.sample.insert({name:"sample1"})
如图:
- 查看数据库中所有的集合collection
show collections
如图:
从图中可以看出,我们添加了一个集合,插入了一条记录,数据库却有2个集合,通过查看内容,可以看出,system.indexes集合是为了sample集合添加主键_id和索引等,而sample集合是真正我们添加的集合。
- 查询指定集合的数据
db.[collection].find() --查询全部文档记录
db.[collection].findOne() --查询第一条文档记录
这里,我们再插入几条文档记录到sample集合中,查询所有:
db.sample.find()
结果如图:
查询第一条文档:
db.sample.findOne()
结果如图:
- 更新文档数据
db.[collection].update({查询条件},{$set:{更新内容}})
例如:
db.sample.update({name:"sample3"},{$set:{name:"samplenew"}})
这里$set相当于一个设置器,更新器的存在,更新及查询结果如下图:
- 删除集合中的数据
db.[collection].remove({删除条件})
如:
db.sample.remove({age:25})
删除结果如图:
- 删除数据库中的集合
db.[collection].drop()
我们来删除sample集合:
db.sample.drop()
- 删除数据库
db.dropDatabase()
MongoDB的客户端shell基本操作就介绍这些,更多的命令可以查看MongoDB官方文档或者shell的help。