关于mongodb数据库的基本查询

标签: mongodb数据库 python高级 python数据库
6人阅读 评论(0) 收藏 举报
分类:

准备数据

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}})
    

    这里写图片描述

查看评论

通过node操作MongoDB数据库

前面说过 node做post请求,前三天的时间对MongoDB 数据库进行了简单的学习,今天进行一个联合演习,的数据要存到数据库...
  • fanhu6816
  • fanhu6816
  • 2016-12-30 21:26:34
  • 2947

MongoDB数据库C#操作例子含源码

  • 2018年01月20日 12:47
  • 3.5MB
  • 下载

社团管理系统开题报告

  • 2015年03月29日 19:24
  • 200KB
  • 下载

mongoDB数据库的查询操作

一、查询 查询当前有哪些数据库: show dbs;2.对集合的查询show tables;3.对集合中文档的查询 db. + 集合名 + .find() 如查询student数据库中score表...
  • u013830811
  • u013830811
  • 2015-10-23 20:40:09
  • 402

关于mongodb数据库

数据库命令在终端使用mongo连接服务端连接成功之后,默认使用的是test数据库查看当前的数据库名称db 查看所有的数据库名称,列出所有在物理内存上存在的数据库show dbs 切换数据库,如果数据库...
  • xu_xuekai
  • xu_xuekai
  • 2018-04-15 22:08:01
  • 2

mongo数据库查询常用语句

看了些资料,对应只需要知道怎么查询和使用mongodb的我来说,这些足够啦。 左边是mongodb查询语句,右边是sql语句。对照着用,挺方便。 db.users.find() select * ...
  • weijunyuan2010
  • weijunyuan2010
  • 2016-06-01 17:32:04
  • 444

MongoDB数据库查询详解

今天详细讲 增删改查 中的查询。 提前准备好了一个数据文件,大家可以自己写一个: 一、查询全部数据:db.persons.find() 把它复制到命令行中会自动添加到数据中,使用db.persons...
  • fanhu6816
  • fanhu6816
  • 2017-01-01 00:52:19
  • 2387

MongoDB数据库的基本操作命令以及和mysql进行比较

MongoDB vs MySql
  • rocky1996
  • rocky1996
  • 2017-07-21 18:18:57
  • 387

grails检索mongodb

①condictions检索: 检索: PaperLog.collection.find(condictions).sort([updateTime:-1]).limit(params.row...
  • liuchuan__________
  • liuchuan__________
  • 2015-09-18 10:28:20
  • 4030

mongodb数据库基本用法

MongoDB数据库基本用法   show dbs:显示数据库列表 show collections:显示当前数据库中的集合(类似关系数据库中的表) show users:显示用户 ...
  • qq_39291929
  • qq_39291929
  • 2017-12-30 11:55:45
  • 115
    个人资料
    等级:
    访问量: 629
    积分: 243
    排名: 30万+
    文章存档