MongoDB基本概念和常用操作(二)
数据查询
基本查询
- 方法find():查询
db.集合名称.find({条件文档})
- 方法findOne():查询,只返回第一个
db.集合名称.findOne({条件文档})
- 方法pretty():将结果格式化
db.集合名称.find({条件文档}).pretty()
比较运算符
- 等于,默认是等于判断,没有运算符
- 小于$lt
- 小于或等于$lte
- 大于$gt
- 大于或等于$gte
- 不等于$ne
- 例1:查询名称等于’gj’的学生
db.stu.find({name:'gj'})
- 例2:查询年龄大于或等于18的学生
db.stu.find({age:{$gte:18}})
逻辑运算符
- 查询时可以有多个条件,多个条件之间需要通过逻辑运算符连接
- 逻辑与:默认是逻辑与的关系
- 例3:查询年龄大于或等于18,并且性别为1的学生
db.stu.find({age:{$gte:18},gender:1})
- 逻辑或:使用$or
- 例4:查询年龄大于18,或性别为0的学生
db.stu.find({$or:[{age:{$gt:18}},{gender:1}]})
- and和or一起使用
- 例5:查询年龄大于18或性别为0的学生,并且学生的姓名为gj
db.stu.find({$or:[{age:{$gte:18}},{gender:1}],name:'gj'})
范围运算符
- 使用"in","in","in","nin" 判断是否在某个范围内
- 例6:查询年龄为18、28的学生
db.stu.find({age:{$in:[18,28]}})
支持正则表达式
- 使用//或$regex编写正则表达式
- 例7:查询姓黄的学生
db.stu.find({name:/^黄/})
db.stu.find({name:{$regex:'^黄'}}})
自定义查询
- 使用$where后面写一个函数,返回满足条件的数据
- 例7:查询年龄大于30的学生
db.stu.find({$where:function(){return this.age>20}})
Limit
- 方法limit():用于读取指定数量的文档
- 语法:
db.集合名称.find().limit(NUMBER)
- 参数NUMBER表示要获取文档的条数
- 如果没有指定参数则显示集合中的所有文档
- 例1:查询2条学生信息
db.stu.find().limit(2)
skip
- 方法skip():用于跳过指定数量的文档
- 语法:
db.集合名称.find().skip(NUMBER)
- 参数NUMBER表示跳过的记录条数,默认值为0
- 例2:查询从第3条开始的学生信息
db.stu.find().skip(2)
一起使用
- 方法limit()和skip()可以一起使用,不分先后顺序
- 创建数据集
for(i=0;i<15;i++){db.t1.insert({_id:i})}
- 查询第5至8条数据
db.stu.find().limit(4).skip(5)
或
db.stu.find().skip(5).limit(4)
投影
- 在查询到的返回结果中,只选择必要的字段,而不是选择一个- 文档的整个字段
- 如:一个文档有5个字段,需要显示只有3个,投影其中3个字段即可
- 语法:
- 参数为字段与值,值为1表示显示,值为0不显示
db.集合名称.find({},{字段名称:1,...})
- 对于需要显示的字段,设置为1即可,不设置即为不显示
- 特殊:对于_id列默认是显示的,如果不显示需要明确设置为0
- 例1
db.stu.find({},{name:1,gender:1})
- 例2
db.stu.find({},{_id:0,name:1,gender:1})
排序
- 方法sort(),用于对结果集进行排序
- 语法
db.集合名称.find().sort({字段:1,...})
- 参数1为升序排列
- 参数-1为降序排列
- 例1:根据性别降序,再根据年龄升序
db.stu.find().sort({gender:-1,age:1})
统计个数
- 方法count()用于统计结果集中文档条数
- 语法
db.集合名称.find({条件}).count()
- 也可以与为
db.集合名称.count({条件})
- 例1:统计男生人数
db.stu.find({gender:1}).count()
- 例2:统计年龄大于20的男生人数
db.stu.count({age:{$gt:20},gender:1})
消除重复
- 方法distinct()对数据进行去重
- 语法
db.集合名称.distinct('去重字段',{条件})
- 例1:查找年龄大于18的性别(去重)
db.stu.distinct('gender',{age:{$gt:18}})
MongoDB基本概念和常用操作(二)相关推荐
- MongoDB基本概念和常用操作(一)
基本操作 MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成 MongoDB文档类似于JSON对象,字段值可以包含其他文档.数组.文档数组 安装管理mongodb环 ...
- arcgis坐标系未定义_科学网—ArcGIS中的坐标系:基本概念和常用操作 - 李郎平的博文...
ArcGIS中的坐标系:基本概念和常用操作 李郎平,Email: lilp@lreis.ac.cn 中国科学院地理科学与资源研究所,资源与环境信息系统国家重点实验室 缘由:介绍GIS(地理信息系统)中 ...
- pod概念及常用操作
pod概念及常用操作 pod概念:什么是pod init容器(初始化容器) pause容器(Infra容器) 修改默认infro容器 普通pod: pod资源限制: pod生命周期介绍 Pending ...
- 二叉查找树(BST)的基本概念及常用操作
二叉查找树 二叉查找树(Binary Search Tree),也称二叉搜索树.有序二叉树(ordered binary tree),排序二叉树(orted binary tree),是指一棵空树或者 ...
- Mongodb数据库命令端常用操作
数据库基本命令操作 数据库常用命令 1.Help查看命令提示 help db.help(); db.yourColl.help(); db.youColl.find().help(); rs.help ...
- python 列表常用操作(二)
1.tuple 的 unpack a,b = t 2.格式化输出 print('您的输入:{},值为{}',format(a,b)) 3.日期计算 import datetime as dt impo ...
- mongodb java set_MongoDB Java常用操作
请先下载下列jar包: mongo-java-driver-*.jar,junit*.jar,gson-*.jar import java.net.UnknownHostException; impo ...
- Java 数组常用操作二(扩充、扩容、重复数据、动态数组、数组差集、数组交集、查找指定元素、判断是否相同、数组合并)
数组扩容(扩充) public class Main {public static void main(String[] args) {String[] names = new String[] { ...
- MongoDB系列:二、MongoDB常用操作练习
最近在自学MongoDB,在此记录一下,当做学习笔记了(不断更新中)!! 一.背景 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存 ...
最新文章
- R语言使用pwr包的pwr.t.test函数对分组样本数相同的t检验进行效用分析(power analysis)、在已知效应量(effect size)、显著性水平、效用值的情况下计算需要的样本量
- 自学大数据:用以生产环境的Hadoop版本比较
- matlab fspeical,matlab的special函数用法
- that is why用法
- WinForm的App.config
- 通过C#中的在线文件自动更新应用程序
- endnote style_教你在论文写作中玩转 Endnote
- 给定一个区间寻找三角形_计算给定图片中的三角形数量–程序化解决方案
- Delphi 与 DirectX 之 DelphiX(3): 初识 TDXDraw
- iOS和js交互三部曲,很不错的文章和demo
- echarts社区饼图 echart饼图 玫瑰图
- mysql入门篇1———单表操作
- Unity3D 2021.1.1F1。更新与下载。
- java智能卡开发_《Java智能卡原理与应用开发》PDF 下载
- html圆形图片切换,jQuery和CSS3炫酷圆形图片切换特效
- useful eclipse plugins
- 二维图形旋转公式的推导
- 国际歌 英特纳雄耐尔一定要实现
- 【xitongshoucang.com】vista登录界面在win 7系统中如何保留
- eclipse Jad class文件反编译插件安装及net.sf.jadclipse_3.3.0.jar和jad.exe下载地址
热门文章
- html5元件的作用,寄存器的作用是什么
- element-UI响应式(布局原理)讲解 - 贴文篇
- 经历了px、em之后,用 rem 适配屏幕
- Vue.js项目去除url中的#/ - 解决篇
- html 设置打印区域,excel打印区域怎么设置
- pythonweb接口优化_python-web后台限制接口调用频率
- 酷乐Emlog新春特别版coolappy2.2开源
- typecho独一无二的后台美化主题模板
- php数组排序id取得,php专用数组排序类ArraySortUtil用法实例
- mysql1241 错误,[Err] 1241 - Operand should contain 1 column(s)错误解析