MongoDB-数据库文档操作(1)

任务描述

文档数据在 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() 方法适用于修改整条数据。

相关推荐
qq_206901393 分钟前
如何创建CDB公共用户_C##前缀强制规则与CONTAINER=ALL.txt
jvm·数据库·python
code bean6 分钟前
MySQL 远程访问实战:从基础操作到真实踩坑记录
数据库·mysql
Hello World . .7 分钟前
Linux驱动编程:内核同步的艺术-从互斥到底半部
linux·开发语言·数据库
Go 言 Go 语7 分钟前
Claude Code 核心加载机制详解
服务器·前端·数据库
weixin_568996067 分钟前
golang如何实现多活架构方案_golang多活架构方案实现教程
jvm·数据库·python
Absurd58710 分钟前
Golang map遍历顺序为什么随机_Golang map遍历原理教程【进阶】
jvm·数据库·python
FinTech老王11 分钟前
突破批处理瓶颈:KingbaseES并行DML技术如何榨干多核CPU性能
数据库·安全·oracle
2301_8038756112 分钟前
Golang怎么实现WebSocket房间_Golang如何按房间分组管理不同的连接群组【方法】
jvm·数据库·python
2301_7965885013 分钟前
Golang怎么用Task替代Makefile_Golang如何用go-task编写跨平台的任务脚本文件【教程】
jvm·数据库·python
悟空爬虫-彪哥18 分钟前
Stich接入Codex教程
java·前端·数据库