任务描述
文档数据在 MongoDB 中的插入和更新。
相关知识
本文将向大家介绍文档数据在 MongoDB 中的基本操作。
文档的数据结构和 JSON 基本一样,所有存储在集合中的数据都是 BSON 格式。BSON 是一种类 JSON 的一种二进制形式的存储格式,简称: Binary JSON 。
本文将教你掌握: 1.插入文档命令; 2.更新文档的两种方法。
插入文档
插入文档命令:db.集合名.insert(文档)
。我们可以将数据定义为一个变量,如下所示:
document=({_id:1,
name: '王小明',
sex: '男',
hobbies: ['乒乓球','羽毛球'],
birthday: '1996-02-14'
});
然后执行插入操作:
db.person.insert(document)
person 是集合名,如果该集合不在该数据库中,MongoDB 会自动创建该集合并插入文档,查看 person 集合,如图1所示:
图 1
更新文档
更新文档主要会用到 update() 方法和 save() 方法。
update() 方法
我们先把 document 插入到集合 person2;
db.person2.insert(document)
由于信息有误,上面 birthday 的格式错了,该怎么去修改这个字段的值呢?这时就要用到 update() 方法了。
用 update() 方法来更新 person2 的数据,把王小明的出生日期替换成1996,命令如下:
db.person2.update({birthday:"1996-02-14"},{$set:{birthday:"1996"}})
更新后如图2所示( pretty() 方法的作用是使文档整齐的输出):
图 2
可以发现:
- update() 有两个参数,都是对象,中间用逗号“ ,”间隔;
- 第一个参数表示需要修改的值;
- 第二个参数用 $set 操作符指向更新后的值。
save() 方法
save() 方法通过传入的文档来替换已有文档。
我们先把 document 插入到集合 person3 中;
db.person3.insert(document)
如果这时我们把一个人的数据都弄错了,怎么办呢?这时用 save() 方法来更新修改一下 person3 的数据就比较方便。
用 save() 方法把王小明的数据修改为李小红的数据:
db.person3.save({
"_id" :1,
"name" : "李小红",
"sex" : "女",
"hobbies" : [
"画画",
"唱歌",
"跳舞"
],
"birthday" : "1996-06-14"
})
注:如果 save() 法也指定了
_id
,则对文档进行更新;未指定_id
则会执行插入功能,MongoDB 默认自动生成一个不重复的_id
。
总结:
-
update() 方法仅适用于修改某条数据中的某个键值;
-
save() 方法适用于修改整条数据。