天天看点

MongoDB数据库、集合操作(增删改查)

数据库操作

选择和创建数据库

use articledb
           

都是用的是use,在这里进行创建数据库之后,再进行show dbs 查看数据库,会发现articledb这个数据库并没有出现,在这里因为存储机制的关系,这个数据库还只存在内存当中,当这个数据库当中有一个集合的时候就会持久化磁盘当中,那个时候这个数据库才可以看到这个数据库。

查看当前数据库

使用db命令即可查看。

MongoDB数据库、集合操作(增删改查)

数据库的删除

使用的是一个方法,db代表当前数据库

测试如下

MongoDB数据库、集合操作(增删改查)

集合操作

集合创建

集合相当于关系数据库当中的表

显示创建

使用

createCollection()

方法进行创建。

使用

show collections

即可查看当前库有多少条集合。

隐式创建

当向一个集合中插入一个文档的时候,如果集合不存在,则会自动创建集合。

db.collection.insert(
<document or array of documents>,
	{
		writeConcern: <document>,
		ordered: <boolean>
	}
)
           

参数解析:

Parameter Type Description
document document or array 要插入到集合中的文档或文档数组。(json格式)
writeConcern document 插入的性能的级别等
ordered boolean 可选。如果为真,则按顺序插入数组中的文档,如果其中一个文档出现错误,MongoDB将返回而不处理数组中的其余文档。如果为假,则执行无序插入,如果其中-个文档出现错误,则继续处理数组中的主文档。在版本2.6+中默认为true

进行测试,使用insert进行插入数据

使用find()方法进行查询结果

MongoDB数据库、集合操作(增删改查)

在这里不单单是可以插入一条数据,也可以插入多条数据,使用insertMany()方法

db.col_many.insertMany([
	{title:"mongodb",description:"this is database",likes:100},	
	{title:"mongodb",description:"this is database",likes:100},
	{title:"mongodb",description:"this is database",likes:100}
	])
           

只用同样的使用find进行查询

MongoDB数据库、集合操作(增删改查)

集合删除

db + 集合名 + drop方法进行删除,在删除之后再进行查看集合。

集合查询

使用到一个find方法

在这个find方法当中也可以带参数进行查询,比如在前面创建的col_many集合当中查询

db.col_many.find({title:"mongodb"})
db.col_many.find({title:"mongodb1"})
           

查看结果

MongoDB数据库、集合操作(增删改查)

这里还有一个fingOne()方法,只会返回一条数据

MongoDB数据库、集合操作(增删改查)

投影查询

在关系数据库当中就相当于子查询某几个字段,只需要再后面加上参数,参数也是json的数据类型,

db.col_many.find({title:"mongodb"},{title:1})
db.col_many.find({title:"mongodb"},{title:1,_id:0})
           

_id是会默认显示的,给后面加上

_id:0

就可以将其隐藏

MongoDB数据库、集合操作(增删改查)

数据更新

覆盖的修改,修改之后全部都会进行覆盖。

进行测试,可以看到数据直接进行了替换。

MongoDB数据库、集合操作(增删改查)

局部修改,为了解决这个问题,我们需要使用修改器$set来实现,命令如下:

查看结果,会发现mongodb1的likes的值从100改成了101

MongoDB数据库、集合操作(增删改查)

批量修改:使用到一个新的参数

{multi:true}

MongoDB数据库、集合操作(增删改查)

数据删除

使用remove进行删除,remove当中可以添加参数

db.col.remove({"title":"mongodb1"})

删除title为mongodb1的这一条数据。

MongoDB数据库、集合操作(增删改查)

在这里

db.col.remove({})

就表示删除所有数据。