MongoDB的增删改查操作

1.文档创建

首先要插入数据前,要先创建数据库,创建完之后建立集合,然后才能进行增删改查的步骤

切换(新建)数据库:

复制代码
use <db>

db是指要创建数据库的名称

新建集合:

复制代码
db.createCollection(<collections>)

collections是指新建的集合

2.文档插入

复制代码
db.<collection>.insert(<doc>)

或者

复制代码
db.<collection>.insertOne(<doc>)

是数据库的单个插入

复制代码
db.<collection>.insert([<doc>,<doc>,<doc>,...])

或者

复制代码
db.<collection>.insertMany([<doc>,<doc>,<doc>,...])

是数据库的多个插入

注意:_id是文档主键,如果没有指定系统会自动生成,类型为ObjectId,如果有指定id则要保证id不重复

3.文档查询

3.1.基本语法

复制代码
db.<collection>.find()

返回当前文档的全部文档

复制代码
db.<collection>.findOne()

只返回一个文档

3.2.条件查询

(1)常见的比较操作符

eq/ne:等于/不等于

复制代码
db.<collection>.find({"name":{$eq:"apple"}})

等价于

复制代码
db.<collection>.finf({"name":"apple"})

$ne以此类推

gt/lt/gte/lte:大于/小于/大于等于/小于等于

复制代码
db.<collection>.find({"price":{$gt:7}})

$not:非条件

复制代码
db.<collection>.find({"price":{$not:{$gt:3,$lt:5}}})

in/nin:存在于/不存在于

复制代码
db.<collection>.find({"name":{$in:["apple","banada","orange"]}})

(2)常见的逻辑操作符

常见的逻辑操作符:与(and)、或(or)、非(nor/not)等

3.3.返回结果控制

利用pretty、sort、limit、skip等子句对查询结果的显示进行控制

sort子句对查询结果的显示进行排序

复制代码
db.<collection>.find().sort({"price":1})

气质"price":1是对price字段进行升序排序,-1则是降序排序

limit子句用于限制返回结果的数量,skip子句用于跳过指定数量的结果

复制代码
db.<collection>.find().limit(10).skip(2)

当前的语句表示返回结果的数量为10个,跳过第一个文档

3.4.字段枚举

复制代码
db.<collection>.distince()

3.5.计数

复制代码
db.<collection>.cound(<quert>,<options>)

4.文档更新

4.1.基本语法

复制代码
db.<collection>.find().update(<query>,<update>,<options>)
db.<collection>.find().updateOne(<query>,<update>,<options>)
db.<collection>.find().updateMany(<query>,<update>,<options>)
db.<collection>.find().replaceOne(<query>,<replacement>,<options>)

update相当于updateOne和updateMany的功能之和,在默认情况下相当于updateOne。<query>表示匹配条件,<update>表示更新方式,<options>为附加选项。<query>和<update>为必须选项,<options>为附加选项。

2.常用操作符

<update>中采用的操作符如下:

$set:将字段设置为一个新值,可在一个 { } 对象中为多个对象赋值,此时字段之间需要用逗号隔开

$inc:将数值型字段增加指定的数值,可在一个 { } 对象中设置多个字段增加不同数值

$mul:将数值型字段乘指定的数值,可在一个 { } 对象中设置多个字段乘不同数值

max/min:数值型字段中,如果待修改字段的数值小于/大于该值,则将数值进行修改

$currentDate:将字段设置为当前时间戳字符串

$rename:将字段改名,可在一个 { } 对象中为多个字段改名

$unset:删除指定字段,可在一个 { } 对象中删除多个字段

5.文档删除

复制代码
db.<collection>.find().remove(<query>)
db.<collection>.find().deleteMany(<query>,<options>)
db.<collection>.find().deleteOne(<query>,<options>)

<query>为删除条件<options>可选可不选。deleteMany语句和deleteOne语句的差别是前者删除多个文档,后者删除一个文档

相关推荐
程序员清风7 小时前
数据处理脚本工程化:日志、配置、命令行与测试
服务器·开发语言·数据库
正在走向自律8 小时前
数据集成产品的技术底座:从日志解析原理到 KFS 同步链路搭建(含建表与增删改查完整代码)
数据库·oracle·信创·数据集成·国产数据库·kingbasees·全量+增量同步
程序员塔塔喵8 小时前
【MySQL篇|第七篇】MySQL事务
数据库·mysql·mysql事务
独隅9 小时前
Claude API 实战教程:从入门到完整项目
android·java·数据库·claude·claude code
_孤傲_9 小时前
快速掌握 MySQL 语法
数据库·后端·mysql
数字新视界11 小时前
一体化机柜在数据中心运维中的创新应用与优势分析
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
SelectDB11 小时前
从 StarRocks 走向 Apache Doris:如何实现引擎平滑替换与架构升级?
大数据·数据库·数据分析
为思念酝酿的痛11 小时前
MySQL的操作
数据库·mysql
猫咪很可爱11 小时前
Oracle ORA-4031 错误分析与处理:SGA 内存不足导致 update/exp/expdp 失败
数据库·oracle
小豆庄12 小时前
视频素材处理时的隐私盲区:云处理与本地处理的边界在哪
数据库·图像处理·视频·敏捷流程