MongoDB中的数据查询

MongoDB实验 MongoDB实验 一、创建名称为自己姓名拼音缩写的数据库。 二、创建名为姓名拼音缩写+col的集合,如dugncol。 三、删除2中的集合,重新创建格式如dugncolnew的集合。 四、在3创建的集合中,插入10条文档数据,要求分别插入到class为“计算机161”和“计算机162”中,其它字段如下图所示: 五、将3中集合中所有age为6的数据修改为age为21。 六、将name为zhangsan7的学生年龄修改为8岁,将兴趣爱好修改为跳舞和画画。 七、追加zhangsan7的兴趣爱好为s 阅读详情
准备数据
db.stu.insert({name:'郭靖',hometown:'蒙古',age:20,gender:true})
db.stu.insert({name:'黄蓉',hometown:'桃花岛',age:18,gender:false})
db.stu.insert({name:'杨康',hometown:'大金',age:20,gender:true})
db.stu.insert({name:'穆念慈',hometown:'大宋',age:18,gender:false})
db.stu.insert({name:'东邪',hometown:'桃花岛',age:40,gender:true})
db.stu.insert({name:'西毒',hometown:'西域',age:41,gender:true})
db.stu.insert({name:'南帝',hometown:'大理',age:42,gender:true})
db.stu.insert({name:'北丐',hometown:'大宋',age:45,gender:true})
db.stu.insert({name:'小甲',hometown:'大宋',age:45,gender:false})
db.stu.insert({name:'中神通',hometown:'全真教',age:44,gender:true})
基本查询
  • 方法 find()

    db.集合名称.find({条件文档})
  • 方法 findOne() 查询,只返回第一个

    db.集合名称.findOne({条件文档})

    这里写图片描述

  • 方法pretty() 将结果格式化

    db.集合名称.find({条件文档}).pretty()

    这里写图片描述

比较运算符
  • 等于,默认就是等于判断,没有运算符

    db.stu.find({age:18}) //查询所有年龄是18的同学
  • 小于:$lt

    db.stu.find({age:{$lt:18}})  //查询年龄小于18的同学
  • 小于等于:$lte

    db.stu.find({age:{$lte:18}}) //查询年龄小于等于18的同学
  • 大于: $gt

    db.stu.find({age:{$gt:18}})  //查询年龄大于18的同学
  • 大于等于: $gte

    db.stu.find({age:{$gte:18}})  //查询大于等于18的同学
  • 不等于: $ne

    db.stu.find({age:{$ne:18}})   //查询年龄不等于18的同学
逻辑运算符
  • 查询时有多个条件,多个条件之间需要通过逻辑运算符来连接

  • 逻辑与:默认的是逻辑与的关系

    // 查询年龄大于或等于18,并且性别为true的学生
    db.stu.find({age:{$gte:18},gender:true})

    这里写图片描述

  • 逻辑或:使用$or,值为数组,数组中每个元素为json

    // 查询年龄大于18,或性别为false的学生
    db.stu.find({$or:[{age:{$gt:18}},{gender:false}]})

    这里写图片描述

  • and和or一起使用

    // 查询年龄大于18或性别为true的学生,并且学生的姓名为郭靖
    db.stu.find({$or:[{age:{$ge:18}},{gender:true}],name:'郭靖'})

    这里写图片描述

范围运算符
  • 使用$in,$nin判断是否在某个范围内

    // 查询年龄为18,28的学生
    db.stu.find({age:{$in:[18,28]}})

    这里写图片描述

正则表达式查询
  • mongodb提供的终端shell,同时也是一个js的执行器,可以编写js的代码和函数

  • 使用//或$regex编写正则表达式

    // 查询姓黄的同学
    db.stu.find({name:/^黄/})
    db.stu.find({name:{$regex:'^黄'}})

    这里写图片描述

自定义查询
  • 使用$where后面写一个函数,返回满足条件的数据

    db.stu.find(
    {
        $where: function(){
          return this.age>30
        }
    }
    )

    这里写图片描述

Limit和skip
  • limit():用于读取指定数量的文档

    db.集合名称.find().limit(number)
    • 参数number:表示要读取文档的条数
    • 没有指定Number则显示集合中所有文档
    // 显示前两条学生的信息
    db.stu.find().limit(3)

    这里写图片描述

  • skip:用于跳过指定数量的文档

    db.集合名称.find().skip(number)
    • 参数number表示跳过的记录条数,默认值为0
  • limit和skip可以一起使用,不分先后顺序。

投影
  • 在查询到的返回结果中,只选择必要的字段,而不是选择一个文档的整个字段

  • 语法:

    // 参数为字段与值,值为1表示显示,值为0不显示
    db.集合名称.find({},{字段名称:1,...})
  • 对于需要显示的字段,设置为1即可,不设置即为不显示

  • 特殊:对于_id列默认是显示的,如果不显示需要明确设置为0

排序
  • 方法sort(),用于对结果集进行排序

    db.集合名称.find().sort({字段:1,...})
  • 参数1为升序排列

  • 参数-1为降序排列

    // 排序 age  从小到大
    db.stu.find({},{name:1,age:1}).sort({age:1})

    这里写图片描述

统计个数
  • 方法count()用于统计结果集中文档条数

    db.集合名称.find({条件}).count()
    db.集合名称.count({条件})
  • 例子

    // 统计age大于18 的总人数
    db.stu.find({age:{$gt:18}}).count()
    db.stu.count({age:{$gt:18}})

    这里写图片描述

消除重复
  • 方法distinct()对数据进行去重

    db.集合名称.distinct('去重字段',{条件})
  • 例子:

    // 查找年龄大于18的学生,来自哪些省份
    db.stu.distinct('hometown',{age:{$gt:18}})

    这里写图片描述

MongoDB系列之详细查询 前段时间项目中用到了MongoDB,上一篇文章介绍了MongoDB的增删改查,今天来介绍一下MongoDB更详细的查询语句。 阅读详情

相关推荐

Spring Boot中使用MongoDB聚合管道进行数据查询操作

在上面的代码中,我们使用Aggregation类创建了一个聚合管道查询,并使用$facet操作符进行分组。在上面的代码中,我们使用Aggregation类创建了一个聚合管道查询,并使用$lookup操作符将User集合中的"departmentId"字段与Department集合中的"_id"字段进行关联查询。在上面的代码中,我们使用Aggregation类创建了一个聚合管道查询,并使用$group操作符按照"age"字段进行分组,并使用count操作符计算每个年龄组的文档数量。操作符进行分组操作。

BitCodeW的博客 368

MongoDB的基本操作

数据: db.student.insert([ {"name":"郭靖","hometown" :"蒙古","age":20,"gender":true}, {"name":"黄蓉","hometown" :"桃花岛","age":18,"gender":false}, {"name":"华筝","hometown" :"蒙古","age":18,"gender":false}, {"na...

qq_43192537的博客 368

Python爬虫实战(基础篇)—23—爬取微信小程序<随机目的地旅行>生成随机地址(附GUI版)

爬取微信小程序<随机目的地旅行>生成随机地址

weixin_42636075的博客 1231

Mongodb常用查询

Mongodb是文档型数据库,每条数据为一个document记录,很多个文档记录组成一个集合(即:结构化数据库中的表)。数据库通过键、值来存储数据(即:字段、字段值),因为每条记录被存储在一个文档中,所以每条记录可以有不同的键,相同的键可以有不同数据类型的值,比如:age可以存储数:3,字符串:5岁。数据库的“键”的命名区分大小写、顺序,比如:name、Name是两个不同的键。Mongodb内嵌shell脚本,支持javascript语法。db是全局变量,通过shell访问数据库的入口。

ccysjy的博客 2万+

红外弱小目标检测:IPI算法解读及MATLAB复现

参考文献:[1]C. Gaoet al., “Infrared Patch-Image Model for Small Target Detection in a Single Image,” vol. 22, no. 12, pp. 4996–5009, 2013. 本文整理????论文笔记,并附MATLAB实现代码。 一、阅读笔记 1. 摘要 IPI算法是单帧检测算法; 利用背景的非局部子相关性(non-local self-correlation ofbackground),将目标检测转..

小草莓的魔法笔记 1万+

Nangate 45nm FreePDK开源工艺库:从RTL到GDSII全流程实战

在数字IC设计中,标准单元库是连接逻辑综合与物理实现的基石,它定义了每个单元的逻辑功能、时序延迟与物理尺寸。开源EDA工具链的成熟,使得个人也能借助免费工艺套件完整跑通芯片设计流程。Nangate 45nm FreePDK作为一套经典的开源工艺库,凭借结构清晰、配套完善的特性,成为学习数字后端和时序收敛的理想训练场。从综合工具Yosys读取Liberty文件进行逻辑映射,到OpenROAD执行布局布线与时钟树综合,再到使用OpenSTA分析关键路径延迟,这套流程涵盖了数字设计最核心的环节。通过亲手操作,开发

weixin_29168393的博客 280

MongoDB查询操作详解

MongoDB是一个流行的NoSQL数据库,以其灵活的数据模型和强大的查询功能而闻名。本文将深入探讨MongoDB的查询操作,包括基本查询、条件查询、聚合查询以及一些高级查询技巧,帮助你充分利用MongoDB的查询能力。

My_wife_QBL的博客 4512

Godot4 TileMap分层绘制全攻略:解决角色、树木遮挡混乱,打造正确视觉层级

本文详细介绍了Godot4 TileMap分层绘制技术,通过图层管理和Y-Sort功能解决2D游戏中角色与物体的遮挡问题。从基础图层设置到高级优化策略,帮助开发者打造符合自然视觉规律的场景层次,提升游戏沉浸感。特别针对TileMap和TileSet的使用提供了实用技巧和代码示例。

weixin_28717411的博客 514

Presto连接mongodb实现数据查询

presto连接mongodb实现数据查询 1.安装 1.1 拉取镜像 docker pull prestosql/presto 1.2 启动容器 docker run -p 8081:8081 --name presto prestosql/presto 上述端口自定义即可。如果想让其他主机连接该容器,需要打开8081端口的防火墙,命令如下: # firewall-cmd --zone=public --add-port=8081/tcp --permanent # firewall-cmd --re

xu2439645715的博客 2754

保姆级教程!Python爬虫爬取知乎回答,保存为Markdown文件

本教程实现了知乎公开回答的完整爬取与Markdown保存,核心流程为「请求页面→解析作者/时间/正文/图片→下载图片→保存MD文件」,步骤清晰,代码可直接复用关键特性:支持合并/单文件两种保存模式、自动下载图片并引用、中文乱码防护、非法文件名过滤,满足日常整理知乎回答的需求新手友好:无需复杂配置,仅需修改知乎问题URL即可运行,全程无坑,5分钟内可看到运行结果灵活扩展:支持进阶优化(登录、分页、格式完善),可根据个人需求调整功能。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1232

C++ (week6、7):Linux系统编程4:网络

Linux网络:计算机网络概述、TCP协议、Socket编程、IO多路复用机制(select、epoll)、HTTP协议、进程池、线程池、大文件网络传输问题

Edward2022的博客 1431

MongoDB之数据查询

—引子 这次窝瓜为大家带来的是关于MongoDB之中,关于数据查询的部分。 众所周知,只要是数据库,对于查询这个功能,都是非常重要的,在这次给小伙伴们带来的,还有着一些比较零碎的知识点,希望能给初学的小伙伴一点帮助! 关系运算符详解: 运算符 含义 $gt 大于 $lt 小于 $gte 大于等于 $lte 小于等于 $ne 不等于 ktu:value 等于 ...

weixin_43754669的博客 503

柔性电极材料新突破:清华团队实现0.1mV级脑信号采集精度

清华团队的 0.1mV 级柔性电极突破,不仅是材料科学与神经工程的跨界胜利,更标志着脑机接口从 “信号采集” 向 “神经交互” 的范式转变。当电极与脑组织实现 “柔性共生”,人类首次拥有了窥探大脑微观电活动的 “精密探头”,这既是神经疾病诊疗的里程碑,更是人机融合时代的新起点。随着技术标准化与产业生态的完善,这场始于实验室的 “柔性革命”,正加速向临床病房、智能工厂、消费电子等场景渗透,为脑机接口的大规模应用铺设 “柔性跑道”。:当柔性电极实现 “神经信号的无损捕捉”,如何平衡技术创新与伦理边界?

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 2946

MongoDB 各种数据查询

文章目录基本查询数据where 筛选条件指定查询显示的列(key)排序结果集分页查询显示模糊查询高级查询等值查询多条件 and 查询多条件 or 查询非查询 $nor比较符 关于数据的查询,我单独写了一篇blog。 基本查询数据 代码 含义 db.t_user.find(); 列出表中所有数据 db.t_user.findOne(); 查询集合中的第一条数据 db.t_us...

董董的^数据空间 538

Palantir 凭什么两年涨 20 倍?深度解析解决 AI 幻觉的 “本体论“ 核心原理

本文深度解析了Palantir本体(Ontology)的核心原理及其在企业AI应用中的革命性价值。本体通过构建结构化的语义层与动态执行层,将企业分散的数字资产(数据集、虚拟表、模型)映射为现实世界的数字孪生,使大模型能够在**严格的业务规则与数据边界内**进行推理与决策,从而从架构层面彻底解决AI幻觉问题。这一技术架构不仅帮助Palantir实现股价两年增长20倍、市值突破4000亿美金的商业成功,更成为SAP、Salesforce等ERP巨头争相模仿的下一代企业智能标准范式。通过航空业飞机故障应急处理等实

program哲学 230

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

MongoDB数据查询

mongodb的条件查询返回单条数据或多条数据以及数据的格式化输出

未知的无限可能 699

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

MongoDB 数据查询

数据查询 基本查询 方法find():查询 db.集合名称.find({条件文档})    方法findOne():查询,只返回第一个 db.集合名称.findOne({条件文档})    方法pretty():将结果格式化 db.集合名称.find({条件文档}).pretty()    比较运算符 ...

anbingzhong1132的博客 101

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

MongoDB数据查询,分页,排序

MongoDB数据查询数据准备:persons.jsonvar persons = [{ name:"jim", age:25, email:"75431457@qq.com", c:89,m:96,e:87, country:"USA", books:["JS","C++","EXTJS","MONGODB"] }, { name:"tom"

世界那么大,我想去看看! 5476

MongoDB数据查询和聚合分析

文章目录2. MongDB数据查询语句与聚合分析2.1 MongoDB条件查询2.1.1 数组元素的匹配查询2.1.2 模糊匹配查询2.1.3 MongoDB数据查询嵌套数组文档2.2 映射Project与过滤2.3 去除重复Distinct2.4 分组统计Group By2.4.1 MongoDB聚合分析方式2.4.2 MongoDB聚合分组统计GroupBy2.4.2.1 MongoDB聚合分...

人生就是为了樱岛麻衣的博客 853

MongoDB数据查询中的关键字&ne

mongodb有这样一个关键字 ne 就是not equal的意思 Syntax: {field: {$ne: value} } $ne selects the documents where the value of the field is not equal (i.e. !=) to the specified value. This includes documents that do n...

CsbLanca 5151

MongoDB在银行海量历史订单交易数据查询中的应用(Spring boot + Bee)

MongoDB在银行海量历史订单交易数据查询中的应用(Spring boot + Bee)近年来,随着各种便捷支付方式的普及,银行账户交易数据呈现爆炸式增长,同时数据模型也在不断变化,传统关系型数据库已难以满足这种海量的、模式灵活、高可用、高性能的数据存储和查询需求。通过对银行历史交易数据查询业务特点的分析,本文提出一种基于MongoDB数据库的银行海量历史订单交易数据查询解决方案,方案包括系统架构、数据模型、索引设计和分片键策略。实验表明,MongoDB能够实现海量的交易数据的存储和快速查询能力。

abckingaa的博客 1211

MongoDB 数据查询(经典查询命令例题合集)

数据查询 增加 persons 集合,执行 persons.json (附件)实现文档的插入,基于Library 数据库中的Media和Persons集合:load ("persons.json") 查询出所有 library 数据库中的media集合的数据 db.media.find() 查询出 persons 集合中所有数据的指定键(name,age,country) db.persons.find ( {, {_id:0,name:1,age:1,country:1}) 查询出所有 library

sjjsaaaa的博客 3454

mongodb千万级数据查询等待问题

0011_mongodb千万级数据查询等待问题 从师兄那里拿到一个数据库有上千万条数据,由于其存储格式有些不正规,于是发现正则查询一个里面不存在的数据需要大量时间 于是通过阅读源代码注释发现可以通过设置超时指标和抛出异常的方式跳过这些不存在的数据,以节省时间效率 # 查询relay是否在traceroute中 # 导入模块 import pymongo # 连接数据库 client = pymongo.MongoClient("mongodb://127.0.0.1:27017/") db = cli

github_38008340的博客 3869

3.MongoDB数据查询

数据查询   基本查询 方法find():查询:db.集合名称.find({条件文档}) 方法findOne():查询,只返回第一个:db.集合名称.findOne({条件文档}) 方法pretty():将结果格式化:db.集合名称.find({条件文档}).pretty() 比较运算符 等于,默认是等于判断,没有运算符 小于$lt、小于或等于$lte、大于$gt、大于

采菊东篱下,Python满乾坤! 662

MongoDB 数据操作(二)数据查询(1)简介

来源:我的博客站 OceanicKang |《MongoDB 数据操作(二)数据查询(1)简介》 上一篇:《MongoDB 数据操作(一)数据添加》 前言 在任何的数据库之中,数据的查询操作都是最为麻烦的。 而在 MongoDB 数据库中,对于查询的支持非常到位,包括关系运算、逻辑运算、数组运算、正则运算等等。 MongoDB 中对于数据的查询操作的核心语法为 db.集合名称.find({查询条...

Oscaner 227
上一篇: MongoDB中基本的增删改查操作
下一篇: MongoDB中的聚合 aggregate
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值