MongoDB高级操作(2)

查询方法-常用查询方法

查询多条数据 --db.集合名称.find({条件文档})

查询一条数据 --db.集合名称.findOne({条件文档})

结果格式化 --pretty()方法 --db.集合名称.find({条件文档}).pretty()

比较运算符

and :在json中写多个条件

or :$or 值为一个数组,数组中每个json元素为或的条件

and与or混合查询

# 查询年龄大于或等于18, 并且性别为true的学生
db.stu.find({age:{$gte:18},gender:true})
?
# 查询年龄大于18, 或性别为false的学生
db.stu.find({$or:[{age:{$gt:18}},{gender:false}]})
?
# 查询年龄大于18或性别为女生, 并且家乡为大理
db.stu.find({$or:[{age:{$gt:18}}, {gender:false}], hometown:‘大理‘})
 

范围运算符

$in --判断在某个范围

$nin --判断不在某个范围

#查询年龄为18或20的学生
db.stu.find({age:{$in:[18,20]}})
#查询年龄为不为18或20的学生
 db.stu.find({age:{$nin:[18, 20]}})

正则表达式

{字段:/正则/}     ---在pymogodb中不支持

{字段:{$regex:‘‘正则"}}

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

limit和skip

使用场景:分页

limit():用于读取指定数量的文档

db.集合名称.find().limit(NUMBER)

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

db.集合名称.find().skip(NUMBER)

# 查询2条学生信息
db.stu.find().limit(2)
# 跳过两个学生,查询后面的
db.stu.find().skip(2)
?
# 混合使用
# 查询学生信息跳过3个学生, 再查询2个学生
db.stu.find().limit(2).skip(3)
db.stu.find().skip(3).limit(2)

自定义查询

在pymongo中使用自定义查询速度很慢, 比直接遍历都要慢很多

使?$where后?写?个函数, 返回满?条件的数据

# 查询年龄大于30的学生
db.stu.find({$where:function(){ return this.age > 30;}})

投影

在查询到的返回结果中只选择必要的字段

db.集合名称.find({},{字段名称:1,...})

参数为字段与值, 值为1表示显示, 值为0不显示, 普通字段不写就是不显示

对于_id列默认是显示的, 如果不显示需要明确设置为0, 其他字段不显示不写即可

排序

sort() -用于对集合进行排序

db.集合名称.find().sort({字段:1,..})

参数1为升序排列  参数为-1位降序排列

# 查询所有学生,按年龄升序
db.stu.find().sort({age:1})
# 查询所有学生,按年龄降序
db.stu.find().sort({age:-1})
# 查询所有学生先根据性别降序, 再根据年龄升序
db.stu.find().sort({gender:-1, age:1})

统计个数

count() 用于统计结果集中文档条数

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

# 查询男生的个数
db.stu.find({gender:true}).count()
db.stu.count({gender:true})
?
统计年龄大于20的男生的个数
db.stu.count({age:{$gt:20}, gender:true})

去重

distinct() 对数据进行去重

db.集合名称.distinct(‘去重字段‘,{条件})

# 查询学生的家乡,不能重复
db.stu.distinct(‘hometown‘)
# 查询年龄大于20的学生的家乡, 不能重复
db.stu.distinct(‘hometown‘, {age:{$gt:20}})
 

原文地址:https://www.cnblogs.com/kadycui/p/10066895.html

时间: 2024-10-30 07:56:29

MongoDB高级操作(2)的相关文章

mongodb高级操作(1)-update

前面我们已经介绍了mongodb的基本操作:mongodb基本操作 下面是介绍一些高级的增删改查操作. 1.更新文档 文档替换 最简单的方法就是文档完全替换,如下就是一个完全替换的例子,先把需要更新的文档找出来并且赋值,然后修改所赋的值,最后再进行update: > a1=db.test.findOne() { "_id" : ObjectId("5738785d132e1e47e535a177"), "x" : 3.14, "y

mongodb高级操作(2)-查询

1.查询文档find介绍 mongodb中使用find来进行查询.find的第一个参数决定了要返回哪些文档,这个参数是一个文档,用于指定查询条件. 如果不指定条件默认就是{},那么就是查询所有文档. > db.test.find() { "_id" : ObjectId("573c858c323f7f2e2ccb0e17"), "name" : "brent", "age" : 43, "s

mongodb 高级操作

聚合 aggregate 聚合(aggregate)主要用于计算数据,类似sql中的sum().avg() 语法 db.集合名称.aggregate([{管道:{表达式}}]) 管道 管道在Unix和Linux中一般用于将当前命令的输出结果作为下一个命令的输入 ps ajx | grep mongo 在mongodb中,管道具有同样的作用,文档处理完毕后,通过管道进行下一次处理 常用管道 $group:将集合中的文档分组,可用于统计结果 $match:过滤数据,只输出符合条件的文档 $proje

【转载】8天学通MongoDB——第三天 细说高级操作

今天跟大家分享一下mongodb中比较好玩的知识,主要包括:聚合,游标. 一: 聚合 常见的聚合操作跟sql server一样,有:count,distinct,group,mapReduce. <1> count count是最简单,最容易,也是最常用的聚合工具,它的使用跟我们C#里面的count使用简直一模一样. <2> distinct 这个操作相信大家也是非常熟悉的,指定了谁,谁就不能重复,直接上图. <3> group 在mongodb里面做group操作有点

MongoDB学习笔记六:高级操作

[数据库命令]『命令的工作原理』MongoDB中的命令其实是作为一种特殊类型的查询来实现的,这些查询针对$cmd集合来执行.runCommand仅仅是接受命令文档,执行等价查询,因此,> db.runCommand({"drop" : "test"})这个drop调用实际上是这样的: db.$cmd.findOne({"drop" : "test"})当MongoDB服务器得到查询$cmd集合的请求时,会启动一套特殊的逻

DataBase MongoDB高级知识

MongoDB高级知识 一.mongodb适合场景: 1.读写分离:MongoDB服务采用三节点副本集的高可用架构,三个数据节点位于不同的物理服务器上,自动同步数据.Primary和Secondary节点提供服务.两个节点分别提供独立域名,配合MongoDB Driver可自行实现读取压力分配. 2.业务灵活多变:由于MongoDB采用No-Schema的方式,对于初创型的业务非常适用,免去变更表结构的痛苦.用户可以将模式固定的结构化数据存储在RDS中,模式灵活的业务存储在 MongoDB中,高

Vue+Node+MongoDB高级全栈开发

第1章 本地与服务器环境准备介绍微信公众号/小程序/域名/服务器的申请选购流程,在本地与线上服务器分别对项目的运行环境进行搭建部署,如 Node.js/Vue/Yarn/PM2/Nginx/MongoDB 等等,同时会来简单介绍下从本地通过 PM2 利用 Git 仓库直接往线上服务器部署以及 Nginx 端口映射解析特定域名的实现流程,最终准备好本地线上和外部业务环境为开发...1-1 导学1-2 课程简介1-3 申请认证公众服务号与小程序1-4 选购域名与备案解析域名1-5 选购配置服务器1-

开发微信全家桶项目 Vue Node MongoDB高级技术栈全覆盖

开发微信全家桶项目 Vue Node MongoDB高级技术栈全覆盖链接:https://pan.baidu.com/s/15-9Ne3vFEFPzJA0wyltxrg 提取码:加Q:1642261812 V信:SH66668888QH 获取 第1章 本地与服务器环境准备介绍微信公众号/小程序/域名/服务器的申请选购流程,在本地与线上服务器分别对项目的运行环境进行搭建部署,如 Node.js/Vue/Yarn/PM2/Nginx/MongoDB 等等,同时会来简单介绍下从本地通过 PM2 利用

MongoDB高级查询用法

译 MongoDB高级查询用法 2018年09月04日 18:52:43 小小小辉happy 阅读数 752更多 分类专栏: 数据库 db的帮助文档 输入:db.help(); db.AddUser(username,password[, readOnly=false])  添加用户 db.auth(usrename,password)     设置数据库连接验证 db.cloneDataBase(fromhost)     从目标服务器克隆一个数据库 db.commandHelp(name)