mongodb(2)--文档的插入、更新与删除操作
一、文档的插入
-- 单文档插入
db.COLLECTION_NAME.insert(document)
db.COLLECTION_NAME.insertOne(document)
-- insert也可以插入多文档
db.COLLECTION_NAME.save(document)
说明:
- insert与save区别
insert方法插入若文档中已存在该文档,会报错,反之写入
save方法插入若集合中已存在该文档,则会更新它,反之写入
-- 多文档插入
db.COLLECTION_NAME.insertMany([document1,document2]...)
-- 使用数组[document],[]
举例
db.comment.insert(
{"articleid":"100000","content":"今天天气真好,阳光明媚","userid":"1001",
"nickname":"Rose","age":"20","phone":"18807141995","createdatetime":new Date(),
"likenum":NumberInt(10),"state":null}
)
db.comment.insert([
{_id:1,"articleid":"100000","content":"清晨,我们不该把时间浪费在手机上,健康很重要,喝一杯温水,幸福你我他","userid":"1001",
"nickname":"相忘于江湖","age":"20","phone":{"homephone":"0531-88888","mobilephone":"18807141995"},"createdatetime":new Date("2022-3-15 09:09:09"),
"likenum":NumberInt(10),"state":null},
{_id:2,"articleid":"100000","content":"我夏天空腹喝凉开水,冬天喝温开水","userid":"1001",
"nickname":"伊人憔悴","age":"20","phone":{"homephone":"0531-88888","mobilephone":"18807141995"},"createdatetime":new Date("2022-3-15 09:09:09"),
"likenum":NumberInt(10),"state":null},
{_id:3,"articleid":"100000","content":"夏天和冬天我都喝凉开水","userid":"1001",
"nickname":"杰克船长","age":"20","phone":{"homephone":"0531-88888","mobilephone":"18807141995"},"createdatetime":new Date("2022-3-15 09:09:09"),
"likenum":NumberInt(10),"state":null}
])
二、文档的删除
-- 删除所有文档
db.COLLECTION_NAME.remove({})
-- 什么条件都没有,删除所有的
-- 删除单个文档
db.COLLECTION_NAME.remove(<query>,{justOne:<boolean>,writeConcern:<document>})
参数说明:
- query:可选参数,表示删除文档的条件
- {justOne:<boolean>,writeConcern:<document>}:可选参数,justOne为true时表示查询到多个文档时只删除第一个文档。writeConcern表示抛出异常的级别
举例
db.comment.remove({"nickname":"爱德华"})
三、文档的更新
db.COLLECTION_NAME.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
参数说明:
- query : update的查询条件,类似sql update查询内where后面的。
- update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
- upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
- multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
- writeConcern :可选,抛出异常的级别。
update参数说明:
- $set:修改器,如果没有该字段,插入该字段
- $inc:修改数值,加法,加上一个数
- $mul:修改数值,乘法,乘一个数
- $rename:修改错误的字段名
- unset:删除字段
- min:用给出的值与文档中的值比较,如果比文档中的小,则修改成给定的值
- max:用给出的值与文档中的值比较,如果比文档中的大,则修改成给定的值
举例说明:
-- content中内容修改
db.comment.update({
content: "喝水是生命体通过口腔摄入水分的方式,人体每天通过口腔摄入的液体大约有2升"
}, {
$set: {
content: "喝水增加了尿量,能使有害物质及时排除体内"
}
})
-- 删除name为joe的favorite book字段
db.users.update({
"name": "joe"
}, {
$unset: {
"favorite book": 1
}
})
-- 修改_id为10的titlss字段名称为title
db.order.update({
_id: 10
}, {
$rename: {
"titlss": "title"
}
})
-- $inc与$mul
db.order.update(
{
title: "商品购物单2"
},
{
$inc: {
amount: 5
}
}
)
db.order.update(
{
title: "商品购物单2"
},
{
$mul: {
amount: 2
}
}
)