MongoDB增删改查
一、 创建数据库
1.语法
use DATABASE_NAME
如果数据库不存在,则创建数据库,反之切换到指定数据库
实例:
> use test1
switched to db test1
> db
test1
2.查看数据库
show dbs
创建数据库,如果不在库内增加集合,查看所有数据库不会显示。(增加完集合再次查看就有了)
二、MongoDB删除数据库
1.语法
db.dropDatabase()
删除数据需要进入数据库内才能删除
2.实例:
查看数据是否删除:
三、 创建集合
MongoDB 中使用 createCollection() 方法来创建集合
1. 语法:
db.createCollection(name, options)
¥.name: 要创建的集合名称
¥.options: 可选参数, 指定有关内存大小及索引的选项
options 可以是如下参数:
字段 类 型 描述
capped 布 尔 (可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到 最大值时,它会自动覆盖最早的文档。当该值为 true 时,必须指定 size 参数。
autoIndexId 布 尔 (可选)如为 true,自动在 _id 字段创建索引。默认为 false。
size 数 值 (可选)为固定集合指定一个最大值(以字节计)。如果 capped 为 true,也需要指定 该字段。
max 数 值 (可选)指定固定集合中包含文档的最大数量
在插入文档时,MongoDB 首先检查固定集合的 size 字段,然后检查 max 字段。
2.普通创建集合
3.带参数创建集合
创建固定集合 mycol,整个集合空间大小 6142800 KB, 文档最大个数为 10000 个。
4.在 MongoDB 中,你不需要创建集合。当你插入一些文档时,MongoDB 会自动创建集合。
四、 删除集合
1.语法:
db.collection.drop()
从结果中可以看出 mycol2 集合已被删除。
五、 MongoDB 插入文档
文档的数据结构和JSON基本一样。
所有存储在集合中的数据都是BSON格式。
BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON。
1.语法:
db.COLLECTION_NAME.insert(document)
2.实例
1.下文档可以存储在 MongoDB 的 runoob 数据库 的 col 集合中:
以上实例中 col 是我们的集合名,如果该集合不在该数据库中, MongoDB 会自动创建该集合并插入文档。
2.查看文档
db.col.find()
3. 将数据定义为变量后进行插入文档
4.单条插入数据
语法:
db.collection.insertOne():向指定集合中插入一条文档数据
5.多条插入数据
语法:
db.collection.insertMany():向指定集合中插入多条文档数据
六、更新文档
MongoDB 使用 update() 和 save() 方法来更新集合中的文档。接下来让我们详细来看下两个函数的应用及其区别。
1.update()方法
db.tb1.update({"test1":"1"},{$set:{"test1":"7"}})
首先查看写入的文档格式,如果格式不符会更新失败
1.当修改键值找不到时不做修改 然而变成添加
2.以上语句只会修改第一条发现的文档,如果你要修改多条相同的文档,则需要设置 multi 参数为 true。
db.tb1.update({"test1":"2"},{$set:{"test1":"7"}},{multi:true})
query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的(1.的方式)
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是 false,不插入。
db.tb1.update({"test8":"7"},{$set:{"test3":"5"}},{upsert:true})
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来 多条记录全部更新。(2.的方式)
db.tb1.update({test1:"7"},{$set:{test1:10}},false,true)
writeConcern :可选,抛出异常的级别。
3.salve方法
save() 方法通过传入的文档来替换已有文档。语法格式如下:
db.collection.save(
<document>,
{
writeConcern: <document>
}
)
参数说明:
document : 文档数据。
writeConcern :可选,抛出异常的级别。
1.替换了 _id 为"_id" : ObjectId("5e97f94eaca0d19e7e3a8d03")
db.tb1.save({ "_id" : ObjectId("5e97f94eaca0d19e7e3a8d03"), "test1" : 50})
db.tb1.save({ "_id" : ObjectId("5e97f94eaca0d19e7e3a8d03"), "hell" : 50})
2.更多实例:
只更新第一条记录:
全部更新:
只添加第一条:
全部添加进去:
全部更新 (count值+1了)
七、删除文档
MongoDB remove()函数是用来移除集合中的数据。
MongoDB数据更新可以使用update()函数。
在执行remove()函数前先执行find()命令来判断执行的条件是否正 确,这是一个比较好的习惯。
1.格式:
db.collection.remove( ,
<query>,
<justOne>
)
如果你的 MongoDB 是 2.6 版本以后的,语法格式如下:
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
参数说明:
query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true 或 1,则只删除一个文档。
writeConcern :(可选)抛出异常的级别。
2.实例:
1. db.tb2.remove({"test3":"ok"})
如果不添加附加项 只要相互匹配,会导致匹配相同的全部删除
2. 只删除一个需要添加justOne
db.tb2.remove({test2:1},1)
3.如果你想删除所有数据,可以使用以下方式(类似常规 SQL 的 truncate 命令):
>db.col.remove({})
4.remove() 方法已经过时了,现在官方推荐使用 deleteOne() 和 deleteMany() 方法。
删除一个文档:
db.test8.deleteOne( { "test1" : 50} )
删除全部文档
db.tb1.deleteMany({})