mongo shell 之文档 查询
来源:互联网 发布:s曲线加速算法 博客 编辑:程序博客网 时间:2024/06/08 02:31
mongodb 对文档的查询提供了丰富的方法,在nosql 数据库中,算是出类拔萃了. 在单表的查询上可以媲美关系型数据库. mongodb 只能对单表进行查询,不能像关系型数据库一样对多表进行连接查询.mongo shell 中基本的查询格式为: db.[collection].find({查询器},{字段筛选器})
1. 字段筛选器 {key:0,key:0}
默认情况下, mongo shell 会查询文档的所有字段信息,相当于sql 中的select * 操作, 如果想指定返回文档中的指定字段的话,可以指定需要显示的字段或者指定不需要显示的字段,这点比sql 中更灵活,sql 中只能选择要显示的字段. 0 表示此字段不显示,其它字段都显示, 1 表示此字段显示, 其它字段都不显示
需要注意的是, 字段筛选器中,所有字段要么全是0 要么全是1, 不允许出现有些0 有些1 的情况.
1) 显示所有字段
2) 显示指定不显示_id 字段,也就是说要显示其它所有字段:
3) 显示指定只显示_id 字段,也就是说其它字段都不显示
4) 混合指定,报异常
2. 查询器:
1. 整数运算符: {key:{$gt:20, $lt:40}}, $gt(>), $gte(>=), $lt(<), $lte(<=), $eq(=), $ne(!=), 只能比较整数类型的key
查询 20<=age <=30 的学生, 相当于where age >=20 and age <=30
2. 包含/不包含: {key:{$in:[val1,val2]}}, $in 包含, $nin 不包含, 适用于所有类型,类似于sql 中的in
查询学生成绩为"70","80" 的学生列表, 相当于 where score in ( "70", "80")
3. 正则查询: {key:/xxx/i}, 正则表达式查询,
简单格式, 以 / 开头, / 结束, i 表示忽略大小写
{key:{$regx:"",$options:"i"}}, 可以和其它条件关联使用
4. 取反, not 可以与任何查询器结合使用: $not:{查询器}
5. null, 查询指定字段不存在的文档, mongodb 中不存在值等与null 的key-value, null 仅仅指此字段不存在, null 可以与$eq, $ne , $in 等结合使用
6. 数组查询:
1) 普通数组:查询数组包含所有指定的元素的记录, {key:{$all:[val1,val2]}
2) 普通数组:查询数组第i 个元素为指定值的文档: {"key.i":val}
3) 普通数组:查询指定数组元素个数的文档:{key:{$size:val}}
4) 文档数组: 查询子文档满足条件的查询:${key:{$elemMath:{}}}
文档结构:查询子文档每个元素同时满足, city:"beijing" ,num:1002 的文档
错误方式: 此中方式会把每个条件当做独立的条件遍历子文档
正确方式:使用$elemMath, 后面的条件针对于同一个文档来筛选
5) 只提取数组的指定元素:{key:{$silce:[start,end]}}, start 从0 开始, 左闭右开
7.条件或: $or, mongodb 统一个{} 中的查询条件都是&&的关系,要是要使用或的关系,需要使用{$or:[{查询器},{查询器}]}, 跟的是查询器数组
3. 查询后常用的方法:
格式: db.[collection].find().[method], 常用method 如下
1. count(): 查看集合总数量
2. siez(): 查看符合筛选条件的结果集的数量
3. pretty(): 格式化文档输出,在有嵌套文档的时候,会进行格式化
4. limit(): 提取几条文档
5. skip(): 跳过几条文档
6. explain(): 查看执行计划
7. help(): 查询可使用的方法
- mongo shell 之文档 查询
- mongo shell 之文档 更新
- mongo shell 之文档 索引
- mongo shell 之集合&文档 插入&删除
- mongo shell 之文档 分页&排序
- mongo shell 之文档 固定集合
- mongo shell 之文档 用户管理
- MongoDB文档翻译-mongo Shell
- mongo shell 之数据类型
- MongoDB文档翻译-mongo Shell-配置mongo Shell
- MongoDB文档翻译-mongo Shell-使用mongo Shell帮助
- MongoDB文档翻译-mongo Shell-给mongo Shell编写脚本
- mongo shell 之 基础操作
- mongo shell 之 GridFS 文件系统
- mongo shell 高级之 分片
- mongo shell 之索引-高级索引
- mongo shell 之 启动项配置
- mongo shell 高级之 主从复制
- mongo shell 之集合&文档 插入&删除
- laravel操作给手机发送短信
- mongo shell 之文档 更新
- 内核 - ## VA-ARGS的用法
- 初涉opencv——opencv安装问题
- mongo shell 之文档 查询
- thinking in java test3.11练习(11)(12)(13)
- Selenium
- 《WINDOWSPE权威指南》学习笔记(三)- 导入表相关机制
- (复习)图论--最短路--SPFA算法
- mongo shell 之文档 分页&排序
- [POJ3274]-Gold Balanced Lineup
- mongo shell 之文档 索引
- sikulix