《MongoDB》Mongo Shell中的基本操作-文档查询
主页: oliver尹的主页
格言: 跌倒了爬起来就好~
来个关
前端博主,热衷各种前端向的骚操作,经常想到哪就写到哪,如果有感兴趣的技术和前端效果可以留言~博主看到后会去代替大家踩坑的~ 主页: oliver尹的主页 格言: 跌倒了爬起来就好~ 来个关注吧,点个赞吧数据库查询操作,谢谢 《MongoDB》Mongo Shell中的基本操作-文档查询 一、简介 本篇记录备份的是Mongo DB的一些基础知识,包括文档长什么样子,Mongo Shell中的CRUD这四种基本操作,什么是CRUD?C(Creadt、创建)R(Read、读取)U(Update、更新)D(Delete、删除),人话就是增、删、改、查等等; 注意,本文中的示例命令都是基于Mongo Shell的,并不是直接运行在类似于node代码中的~ 二、内容概述 本文主要分享的内容是如何 通过find()命令进行数据查询,还有很多的操作符包括:比较操作符,逻辑操作符,字段操作符,数组操作符 以及 运算操作符,具体内容如下: 三、文档读取 3.1 db.collection.find() find方法是MongoDB中查询的方法,也是整个数据库操作中最常用的方法
find方法接收两个参数,第一个参数: 什么是投射?简单的说就是可以对结果进行进一步筛选,只返回部分指定的字段,比如一个文档一共有10个字段,但是我们只需要其中的5个,那么通过预设好的投射,可以只返回这5个字段; 读取全部文档
不添加任何筛选条件即可,返回的是 collection 下的所有数据 读取匹配文档 在第一个参数中 query 添加对应的条件,比如想要查询username是oliver的数据,那么可以这么写
查询到的结果是username为oliver的这条数据的全部信息
当然,这个字段是可以多重的,多重代表着精度更为准确,因为有时候可能会有相同的查询条件的数据,比如username有很多数据都叫oliver,因此,更多的条件代表着更准确的搜索
比较操作符查询
$eq 操作符 匹配字段值 相等 的文档;
找到字段username的值 等于 oliver的数据; $ne操作符 匹配字段值 不相等 的文档;
找到字段username的值 不等于 oliver的数据; $gt操作符 匹配字段值 大于 查询值的文档;
找到字段age的值 大于 18的数据; $gte操作符 匹配字段值 大于 或者 等于 查询值的文档;
找到字段age的值 大于 或者 等于 18的数据; $lt操作符 匹配字段值 小于 查询值的文档;
找到字段age的值 小于 18的数据; $lt操作符 匹配字段值 小于 或者 等于 查询值的文档;
找到字段age的值 小于 或者 等于 18的数据; $in 操作符 匹配字段值于任意一个查询值相等的文档,$in 这个操作符的用法如下:
看个例子
这个查询的意思就是,任何一个文档的username只要是oliver或者是test都将被查询出来; $nin 操作符 匹配字段值与任何查询值都不相等的文档,$nin这个操作符的用法如下:
还是拿上方的那个例子
这个查询的意思就是,除了username是oliver或者是test的所有文档都将被查询出来; 逻辑操作符查询 模版如下:
$not 操作符 匹配筛选条件 不成立 的文档;
查询所有age字段 不小于 18的数据; $and 操作符 匹配多个筛选条件 全部成立 的文档;
具体例子
查询所有age大于18,并且name值是oliver的数据; $or 操作符 匹配 至少一个筛选条件成立的文档;
具体例子
查询所有age大于18,或者 name值 是oliver的数据; $nor 操作符 匹配 全部筛选条件都不成立的文档;
具体例子
查询所有age不大于18,并且 name值 也不是oliver的数据; 字段操作符 $exists 操作符 匹配 包含查询字段 的文档
具体例子
查询所有包含age字段的文档, $type 操作符 匹配字段类型 符合查询值 的文档
具体例子
查询所有包含 name 字段,并且 name字段的值是string类型 的文档,如果是数组的话
查询所有包含 name 字段,并且 name字段的值是string类型或者是数字类型 的文档; 数组操作符 数组操作符查询的是字段类型为数组的值 $all 操作符 匹配数组字段中包含所有查询值的文档;
具体例子
查找所有具有字段contact中同时 存在a和b的项; $elemMatch 操作符 匹配数组字段中至少存在一个值满足刷选,这个有点想上面的$or 操作符
具体例子
查找所有具有字段contact中 存在大于1000小于2000的数据; $all 操作符和 $elemMatch 操作符联合使用 查询contact中大于1000小于2000和大于3000小于4000的项
运算操作符 $regex 正则操作符 匹配 满足正则表达式的文档;
具体例子
读取用户姓名包含oliver的文档,不区分大小写 四、小结 本文主要记录了在常规数据库操作中文档查询的一些用法~查询的命令非常简单,都是db.collection.find(),但查询时候的操作符非常复杂,需要经常使用与回顾~ (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |