【收藏】MongoDB 常用查询语句汇总

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 【收藏】MongoDB 常用查询语句汇总

前言


  我们经常使用的MySQL是最流行的关系型数据库管理系统,随着时代的进步,互联网的发展关系型数据库已经不满足于互联网的需求,因此出现了非关系数据库,本文将介绍MongoDB 常用查询语句。


初始MongoDB


  MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

  MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

  • database:数据库,SQL中的database含义。
  • collection:数据库表/集合,SQL中的table含义。
  • document:数据记录行/文档,SQL中的row含义。
  • field:数据字段/域,SQL中的column含义。
  • index:索引,SQL中的index含义。
  • primary key:主键,MongoDB自动将_id字段设置为主键,SQL中的primary key含义。


MongoDB特点


  • MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。
  • 你可以在MongoDB记录中设置任何属性的索引 (如:FirstName="Sameer",Address="8 Gandhi Road")来实现更快的排序。
  • 你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。
  • 如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。
  • Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
  • MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。
  • Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。
  • Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。
  • Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。
  • GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。
  • MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。
  • MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
  • MongoDB安装简单。


快速开始

查询所有


查询数据库表/集合的所有数据

db.getCollection("test").find();


查询指定字段数字类型

根据userId指定字段查询数据 数字类型

db.getCollection("test").find({"userId":632});


查询指定字段字符串类型

根据goodsNo指定字段查询数据 字符串类型

db.getCollection("test").find({"goodsNo":"789789789789"});


多条件查询

多条件查询指定字段数据信息

db.getCollection("test").find({"userId":632,"supplyGoodsNo":"870000065481"});


查询全数据表中的指定字段数据信息

查询全数据表中的指定字段数据信息,返回主键_id

db.getCollection("test").find({},{"userId":1,"supplyGoodsNo":1,"url":1});


查询全数据表中的指定字段数据信息,不返回主键_id

db.getCollection("test").find({},{"userId":1,"supplyGoodsNo":1,"url":1,"_id":0});


查询数据集中指定区间的数据

查询数据集中指定区间的数据 比较大小的数据 其中大于> 【gt】小于<【gt】 小于< 【gt<lt】 大于等于>=【gte】小于等于<=【gte】 小于等于<= 【gte<=lte】 不等于!=【$ne】

db.getCollection("test").find({"userId":{"$gte":500,"$lte":800}});


查询不等于的数据信息

查询不等于的数据信息

db.getCollection("test").find({"userId":{"$ne":500}});


in 包含

in 包含某些数据

db.getCollection("test").find({"userId":{"$in":[500,600,632]}});


not in 不包含

not in 不包含某些数据

db.getCollection("test").find({"userId":{"$nin":[123,500,4000]}});


or 或者

or 或者 ,相当于SQL中的select * form test where userId = 632 or supplyGoodsNo = "870000065481"语句

db.getCollection("test").find({"$or":[{"userId":632},{"supplyGoodsNo":"870000065481"}]});


mod 取模

mod 取模,相当于SQL中 select * from test where (userId mod 5) = 1语句。

db.getCollection("test").find({"userId":{"$mod":[5,1]}});


not

not语句查询 相当于SQL中 select * from test where not (userId = 600)语句。

db.getCollection("test").find({"$not":{"userId":600}});


空查询

空查询相当于SQL中 select * from test where userId is null 语句。

db.getCollection("test").find({"userId":{"$in":[null],"$exists":true}});


正则查询

正则查询

db.getCollection("test").find({"userId" : /63?/i});


数组查询

对数组的查询,字段url中,既包含"a",又包含"b"的纪录

db.getCollection("test").find({url:{$all:["a","e"]}});


对数组的查询, 字段url中,第4个(从0开始)元素是a的纪录

db.getCollection("test").find({url.3,"a"});


对数组的查询, 查询数组元素个数是3的记录,$size前面无法和其他的操作符复合使用

db.getCollection("test").find({"url" : {"$size" : 3}});


时间比较


比较时间大小,某个时间段之后的数据(方式1)

db.getCollection("test").find({"createTime" : {"$gte" : ISODate("2021-08-12 16:03:06.815")}});


比较时间大小,某个时间段之后的数据(方式2)

db.getCollection("test").find({"createTime":{$gte:new Date(2021,7,12)}});


相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
1月前
|
存储 NoSQL MongoDB
掌握MongoDB索引优化策略:提升查询效率的关键
在数据库性能调优中,索引是提升查询效率的利器。本文将带你深入了解MongoDB索引的内部工作原理,探讨索引对查询性能的影响,并通过实际案例指导如何针对不同的查询模式建立有效的索引。不仅将涵盖单一字段索引,还会探讨复合索引的使用,以及如何通过分析查询模式和执行计划来优化索引,最终实现查询性能的最大化。
|
23天前
|
存储 NoSQL MongoDB
MongoDB 查询分析
10月更文挑战第21天
11 1
|
23天前
|
NoSQL MongoDB 索引
MongoDB 覆盖索引查询
10月更文挑战第21天
23 1
|
29天前
|
SQL NoSQL MongoDB
MongoDB 查询文档
10月更文挑战第15天
14 1
|
30天前
|
人工智能 NoSQL 机器人
MongoDB Atlas与YoMio.AI近乎完美适配:推理更快速、查询更灵活、场景更丰富
随着MongoDB的新发布和革新,YoMio.AI的“闪电式发展”值得期待。
|
5月前
|
NoSQL 定位技术 MongoDB
解锁MongoDB索引的秘密:优化查询效率与应对限制的策略
解锁MongoDB索引的秘密:优化查询效率与应对限制的策略
|
2月前
|
SQL NoSQL JavaScript
04 MongoDB各种查询操作 以及聚合操作总结
文章全面总结了MongoDB中的查询操作及聚合操作,包括基本查询、条件筛选、排序以及聚合管道的使用方法和实例。
75 0
|
3月前
|
JSON NoSQL MongoDB
MongoDB Schema设计实战指南:优化数据结构,提升查询性能与数据一致性
【8月更文挑战第24天】MongoDB是一款领先的NoSQL数据库,其灵活的文档模型突破了传统关系型数据库的限制。它允许自定义数据结构,适应多样化的数据需求。设计MongoDB的Schema时需考虑数据访问模式、一致性需求及性能因素。设计原则强调简洁性、查询优化与合理使用索引。例如,在构建博客系统时,可以通过精心设计文章和用户的集合结构来提高查询效率并确保数据一致性。正确设计能够充分发挥MongoDB的优势,实现高效的数据管理。
62 3
|
3月前
|
存储 NoSQL MongoDB
【掌握MongoDB】轻松精通MongoDB查询,从基础到高级一网打尽!
【8月更文挑战第24天】在数据驱动的时代,数据库的性能与灵活性对企业至关重要。MongoDB作为一种高性能、无模式的文档数据库,为开发者提供了灵活的数据存储方案。尤其在处理半结构化或多变数据时展现出强大优势。本文重点介绍MongoDB中的查询操作,包括基本查询、条件查询、复杂查询以及字段选择、排序和限制等功能。通过掌握这些基本查询技巧,开发者能够有效从MongoDB中检索数据,支持复杂的业务逻辑。
60 1
|
3月前
|
监控 NoSQL MongoDB
mongodb查询100万数据如何查询快速
综上,提高MongoDB百万级数据的查询性能需要综合多项技术,并在实际应用中不断调优和实践。理解数据的特征,合理设计索引,优化查询语句,在数据访问、管理上遵循最佳的实践,这样才能有效地管理和查询大规模的数据集合。
212 1