MongoDB--》文档查询的详细具体操作

news/2024/11/21 1:33:38/

目录

统计查询

分页列表查询

排序查询

正则的复杂条件查询

比较查询

包含查询

条件连接查询


统计查询

统计查询使用count()方法,其语法格式如下:

db.collection.count(query,options)
ParameterTypeDescription
querydocument查询选择条件
optionsdocument可选,用于修改计数的额外选项

接下来我往我空的集合 myTables 中添加如下数据,文章的讲解都是围绕着这些数据讲解:

db.myTables.insertMany([{"_id":"1","name":"张三","age":"18","gender":"男"},{"_id":"2","name":"李四","age":"28","gender":"男"},{"_id":"3","name":"王五","age":"38","gender":"女"},{"_id":"4","name":"陈六","age":"48","gender":"男"},{"_id":"5","name":"胡七","age":"58","gender":"女"}
])

使用 count  统计所有的记录数,默认情况下count()方法返回符合条件的所有记录数,如下:

按条件统计记录数,如下:

分页列表查询

可以使用limit()方法来读取指定数量的数据,使用skip()方法来跳过指定数据的数据。基本格式:

db.collection.find().limit(number).skip(number)

如果想返回指定条数的记录,可以在find()方法后调用limit()来返回结果,比如自己想查看第一和第二条数据,如下:

如果想查看第三和第四条数据,需要我们越过第一和第二进行查看,如下:

排序查询

sort()方法对数据进行排序,sort()方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排序,而 -1 是用于降序排序。语法如下所示:

db.collection.find().sort({KEY:1})
或
db.集合名称.find().sort(排序方式)

举个例子,以年龄进行降序,如下:

正则的复杂条件查询

MongoDB的模糊查询是通过正则表达式的方式实现,正则表达式是js的语法,其格式为:

db.collection.find({field:/正则表达式/})
或
db.集合名称.find({字段:/正则表达式/})

比如我想查询名称为王五的数据,如下:

比如我想匹配任何 age 结尾为8的数据,如下:

比较查询

比较查询通过使用 < , <= , > , >= 这些符合进行操作,其基本格式如下:

db.集合名称.find( {"field" : {$gt : value}} ) // 大于:field > value
db.集合名称.find( {"field" : {$lt : value}} ) // 小于:field < value
db.集合名称.find( {"field" : {$gte : value}} ) // 大于等于:field >= value
db.集合名称.find( {"field" : {$lte : value}} ) // 小于等于:field <= value
db.集合名称.find( {"field" : {$ne : value}} ) // 不等于:field != value

 示例:查询年龄大于等于20的人的数据:

包含查询

包含使用 $in 操作符,如下:

不包含使用 $nin 操作符,如下:

条件连接查询

我们如果需要查询通俗满足两个以上条件,需要使用 $and 操作符将条件进行关联(相当于 SQL 中的 and)。其格式为:$and: [ {},{},{} ],举例如下:

如果两个以上条件之间是或者的关系,我们使用操作符进行关联,与前面 and 的使用方式相同的格式为:举例如下:

总结

查询所有数据:db.collection.find();

条件查询数据:db.collection.find({条件})
查询符合条件的第一条记录:db.collection.findOne({条件})
查询符合条件的前几条记录:db.collection.find({条件}).limit(条数)

查询符合条件的跳过的记录:db.collection.find({条件}).skip(条数)
修改数据:db.collection.update({条件},{修改后的数据}) 或 db.collection.update({条件},{$set:{要修改部分的字段:数据})
修改数据并自增某字段值:db.collection.update({条件},{$inc:{自增的字段:步进值}})

删除数据:db.collection.remove({条件})
统计查询:db.collection.count({条件})
模糊查询:db.collection.find({字段名:/正则表达式/})

条件比较运算:db.collection.find({字段名:{$gt:值]})
包含查询:db.collection.find({字段名:{$in:[值1,值2]}}) 或 db.collection.find({字段名:{$nin:[值1,值2]}])

条件连接查询:db.collection.find({$and: [{条件1},{条件2]]}) 或 db.collection.find({$or :[{条件1},{条件2}]})


http://www.ppmy.cn/news/24756.html

相关文章

MySQL 共享锁 (lock in share mode),排他锁 (for update)

共享锁 (lock in share mode) 简介 允许不同事务之间加共享锁读取&#xff0c;但不允许其它事务修改或者加入排他锁 如果有修改必须等待一个事务提交完成&#xff0c;才可以执行&#xff0c;容易出现死锁 共享锁事务之间的读取 session1: start transaction; select * from…

nvm控制node版本

目录 安装 nvm 1、下载 nvm 2、安装 3、验证安装 安装 node 1、查看 node 版本号 2、安装 node 3、查看已安装 nvm 常用命令 安装 nvm 1、下载 nvm 官网安装包&#xff1a; github 选择 nvm-setup.exe 下载 2、安装 1、选择 nvm 安装目录&#xff08;可自定义&#xff09;…

MongoDB--》基本常用命令使用

目录 数据库操作命令 选择和创建数据库 数据库的删除 集合操作命令 集合的显示创建 集合的隐式创建 集合的删除 文档基本的CRUD&#xff08;增删改查&#xff09; 文档的插入 文档的基本查询 文档的更新 删除文档 数据库操作命令 数据库常用的操作命令如下&#x…

[OS笔记]文件管理1

内容系听课复习所做笔记&#xff0c;图例多来自课程截图 序 图&#xff1a;操作系统的文件功能 文件系统就是管理外存用的&#xff08;免去用户接触底层繁杂的细节&#xff09; 方便了用户保证了文件的安全性有效提高了系统的资源利用率 需要考虑&#xff1a; 文件内部数据如…

ROS2机器人编程简述humble-第四章-BASIC DETECTOR .3

书中程序适用于turtlebot、husky等多种机器人&#xff0c;配置相似都可以用的。支持ROS2版本foxy、humble。基础检测效果如下&#xff1a;由于缺&#xffe5;&#xff0c;所有设备都非常老旧&#xff0c;都是其他实验室淘汰或者拼凑出来的设备。机器人控制笔记本是2010年版本。…

Spring的事务传播机制

多个事务方法相互调用时&#xff0c;事务如何在这些方法之间进行传播&#xff0c;Spring中提供了七种不同的传播机制&#xff0c;来保证事务的正常执行&#xff1a; REQUIRED&#xff1a;默认的传播机制&#xff0c;如果存在事务&#xff0c;则支持/加入当前事务&#xff0c;如…

【VictoriaMetrics】VictoriaMetrics单机版批量和单条数据写入(Prometheus格式)

VictoriaMetrics单机版支持以Prometheus格式的数据写入,写入支持单条数据写入以及多条数据写入,下面操作演示下如何使用 1、首先需要启动VictoriaMetrics单机版服务 2、使用postman插入单机版VictoriaMetrics,以当前时间插入数据 地址为 http://victoriaMetricsIP:8428/api…

焕新启航,「龙蜥大讲堂」2023 年度招募来了!13 场技术分享先睹为快

龙蜥大讲堂是龙蜥推出的系列技术直播活动&#xff0c;邀请龙蜥社区的开发者们分享围绕龙蜥技术展开&#xff0c;包括但不限于内核、编译器、机密计算、容器、储存等相关技术领域。欢迎社区开发者们积极参与&#xff0c;共享技术盛宴。往期回顾龙蜥社区技术系列直播截至目前已举…