「这是我参与2022首次更文挑战的第27天,活动详情查看:2022首次更文挑战」。
前言
大家好,我是程序猿小白 gw_Gw,很高兴能和大家一起学习进步。
以下内容部分来自于网络,如有侵权,请联系我删除,本文仅用于学习交流,不用作任何商业用途。
摘要
本文主要介绍MongoDB数据库的插入文档和更新文档的用法,以及一些注意事项。
1. 插入文档
db.collection.insert() 、 db.collection.insertOne() 和 db.collection.insertMany()
db.collection.insertOne() 和 db.collection.insertMany()是3.2及之后版本新增的两个方法。而save()方法已经被废弃。
-
db.collection.insertOne()
【语法格式】
db.collection.insertOne( {key:value}, { writeConcern:1 } )
-
db.collection.insert()
【语法格式】
db.collection.insert( {key:value} )
-
db.collection.insertMany()
[语法格式]
db.collection.insertOne( [ {key:value}, {key:value}, {key:value}, ... ] { writeConcern:1, ordered:true } )
参数解释:
- writeConcern:默认为 1,确认写操作,0 是不要求。
- ordered:是否按顺序写入,默认 为true,按顺序写入。
【实例展示】
db.articles.insert(
{"name":"mongoDB intro"},
{"category":"database"},
{"tags":["nosql","db","bigdata"]}
)
db.articles.insertOne(
{"name":"mongoDB intro"},
{"category":"database"},
{"tags":["nosql","db","bigdata"]}
)
db.potions.insertMany([
{
"name":"Invisibility",
"vendor":"Kettlecooked",
"price":10.99,
"score":59,
"tryDate":new Date(2022,02,26),
"ingredients":["newt toes",42,"laughter"],
"ratings":{"strength":2,"flavor":5}
},
{
"name":"Love",
"vendor":"Brewers",
"price":3.99,
"score":63,
"tryDate":new Date(2022,03,26),
"ingredients":["apple","orange","banana"],
"ratings":{"strength":4,"flavor":6}
},
{
"name":"Shrinking",
"vendor":"Kettlecooked",
"price":15.99,
"score":50,
"tryDate":new Date(2022,04,26),
"ingredients":["watermelon",56,"grape"],
"ratings":{"strength":7,"flavor":8}
}
])
需要注意的是:insertMany()方法需要中括号,注意不要忘记。也可以通过insert()方法来插入多个文档,我们可以定义一个数组,把要插入的文档循环放入数组中,然后把数组插入到集合中。
2. 更新文档
-
db.collection.updateOne() 更新单个文档.
-
db.collection.updateMany() 更新多个文档.
-
db.collection.update()更新已存在的文档.
【语法格式】
db.collection.update( <query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <document> } )
参数解释:
- query:更新的条件
- update:要更新的字段和更新的方式
- upsert:如果为true,则不存在则插入,如果为false则不插入,默认为false。此字段可选。
- multi:如果为true则更新查询出来的全部记录,如果为false则只更新第一个,默认为false。此字段可选。
- writeConcern:抛出异常的级别,此字段可选。
-
db.collection,save()通过传入的文档来替换已有文档,_id 主键存在就更新,不存在就插入.
【语法格式】
db.collection.save( <document>, { writeConcern: <document> } )
【实例展示】
- 更新title为Martian的记录,把reviews字段的值增加3,userReviews的值增加25.
db.movieDetails.update(
{"title":"Martian"},
{$inc:{"reviews":3,"userReviews":25}}
)
- 更新title为Martian的第一个记录,把awards的值变为sss
db.movieDetails.updateOne(
{"title":"Martian"},
{$set:{"awards":"sss"}}
)
- 更新所有title为Martian的记录,把awards的值变为sss
db.movieDetails.updateOne(
{"title":"Martian"},
{$set:{"awards":"sss"}}
)
- 把title为Martian的将文档替换为如下格式。
db.movieDetails.save(
{
"title":"Martian",
"age":34
}
)
补充一些常用操作符的用法:
- $set 修改字段值(覆盖)
- $uset 删除字段
- $inc 给指定的字段增加或减少值
- $rename 重命名
- $setOnInsert 数据不存在则插入
小结
以上就是关于MongoDB数据库的插入文档和更新文档的一些用法,希望能对读者有所帮助,如有不正之处,欢迎留言指正。