数据查询

基本查询

  • 方法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基本概念和常用操作(二)相关推荐

  1. MongoDB基本概念和常用操作(一)

    基本操作 MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成 MongoDB文档类似于JSON对象,字段值可以包含其他文档.数组.文档数组 安装管理mongodb环 ...

  2. arcgis坐标系未定义_科学网—ArcGIS中的坐标系:基本概念和常用操作 - 李郎平的博文...

    ArcGIS中的坐标系:基本概念和常用操作 李郎平,Email: lilp@lreis.ac.cn 中国科学院地理科学与资源研究所,资源与环境信息系统国家重点实验室 缘由:介绍GIS(地理信息系统)中 ...

  3. pod概念及常用操作

    pod概念及常用操作 pod概念:什么是pod init容器(初始化容器) pause容器(Infra容器) 修改默认infro容器 普通pod: pod资源限制: pod生命周期介绍 Pending ...

  4. 二叉查找树(BST)的基本概念及常用操作

    二叉查找树 二叉查找树(Binary Search Tree),也称二叉搜索树.有序二叉树(ordered binary tree),排序二叉树(orted binary tree),是指一棵空树或者 ...

  5. Mongodb数据库命令端常用操作

    数据库基本命令操作 数据库常用命令 1.Help查看命令提示 help db.help(); db.yourColl.help(); db.youColl.find().help(); rs.help ...

  6. python 列表常用操作(二)

    1.tuple 的 unpack a,b = t 2.格式化输出 print('您的输入:{},值为{}',format(a,b)) 3.日期计算 import datetime as dt impo ...

  7. mongodb java set_MongoDB Java常用操作

    请先下载下列jar包: mongo-java-driver-*.jar,junit*.jar,gson-*.jar import java.net.UnknownHostException; impo ...

  8. Java 数组常用操作二(扩充、扩容、重复数据、动态数组、数组差集、数组交集、查找指定元素、判断是否相同、数组合并)

    数组扩容(扩充) public class Main {public static void main(String[] args) {String[] names = new String[] { ...

  9. MongoDB系列:二、MongoDB常用操作练习

    最近在自学MongoDB,在此记录一下,当做学习笔记了(不断更新中)!! 一.背景 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存 ...

最新文章

  1. R语言使用pwr包的pwr.t.test函数对分组样本数相同的t检验进行效用分析(power analysis)、在已知效应量(effect size)、显著性水平、效用值的情况下计算需要的样本量
  2. 自学大数据:用以生产环境的Hadoop版本比较
  3. matlab fspeical,matlab的special函数用法
  4. that is why用法
  5. WinForm的App.config
  6. 通过C#中的在线文件自动更新应用程序
  7. endnote style_教你在论文写作中玩转 Endnote
  8. 给定一个区间寻找三角形_计算给定图片中的三角形数量–程序化解决方案
  9. Delphi 与 DirectX 之 DelphiX(3): 初识 TDXDraw
  10. iOS和js交互三部曲,很不错的文章和demo
  11. echarts社区饼图 echart饼图 玫瑰图
  12. mysql入门篇1———单表操作
  13. Unity3D 2021.1.1F1。更新与下载。
  14. java智能卡开发_《Java智能卡原理与应用开发》PDF 下载
  15. html圆形图片切换,jQuery和CSS3炫酷圆形图片切换特效
  16. useful eclipse plugins
  17. 二维图形旋转公式的推导
  18. 国际歌 英特纳雄耐尔一定要实现
  19. 【xitongshoucang.com】vista登录界面在win 7系统中如何保留
  20. eclipse Jad class文件反编译插件安装及net.sf.jadclipse_3.3.0.jar和jad.exe下载地址

热门文章

  1. html5元件的作用,寄存器的作用是什么
  2. element-UI响应式(布局原理)讲解 - 贴文篇
  3. 经历了px、em之后,用 rem 适配屏幕
  4. Vue.js项目去除url中的#/ - 解决篇
  5. html 设置打印区域,excel打印区域怎么设置
  6. pythonweb接口优化_python-web后台限制接口调用频率
  7. 酷乐Emlog新春特别版coolappy2.2开源
  8. typecho独一无二的后台美化主题模板
  9. php数组排序id取得,php专用数组排序类ArraySortUtil用法实例
  10. mysql1241 错误,[Err] 1241 - Operand should contain 1 column(s)错误解析