MongoDB 高级查询条件操作符

2012-04-25 15:35:19|  分类: MongoDB |  标签:mongodb使用  mongodb查询  |举报|字号订阅

下载LOFTER我的照片书  |

MongoDB 支持多种复杂的查询方式,能实现大多数 T-SQL 功能,远不是 Key-Value 之类的 NoSQL DB 所能比拟的。
Conditional Operators : $slice //切片
Conditional Operators : $lt <, $lte <=, $gt >, $gte >=
Conditional Operator : $ne //不等于
Conditional Operator : $in //属于
Conditional Operator : $nin //不属于
Conditional Operator : $mod //取模运算
Conditional Operator:   $all  //全部属于
Conditional Operator : $size //数量
Conditional Operator: $exists //字段存在
Conditional Operator: $type //字段类型
Conditional Operator: $or // 或
Regular Expressions //正则表达式
Value in an Array // 数组中的值
Conditional Operator: $elemMatch //要素符合
Value in an Embedded Object //内嵌对象中的值
Meta operator: $not //不是
Javascript Expressions and $where //
sort() //排序
limit() //限制取数据条数
skip() //跳过一定数值开始取
snapshot() //
count() // 数量
group() //分组

准备数据

In [9]: db
Out[9]: Database(Connection('localhost', 27017), u'test')
In [10]: table = db.table_abeen
In [11]: table
Out[11]: Collection(Database(Connection('localhost', 27017), u'test'), u'table_abeen')

In [12]: table.insert({"name":"abeen", "age":27})
Sun Aug 8 23:14:20 connection accepted from 127.0.0.1:46143 #27
Out[12]: ObjectId('4c5f9cbc421aa90fb9000000')

In [14]: table.insert({"name":"shanshan", "age":22})
Out[14]: ObjectId('4c5f9ccb421aa90fb9000001')

Conditional Operator: $ne (not equal)

//查找name不等于abeen的信息
In [24]: list(table.find({"name":{"$ne":"abeen"}}))
Out[24]:
[{u'_id': ObjectId('4c5f9ccb421aa90fb9000001'),
u'age': 22,
u'name': u'shanshan'},
{u'_id': ObjectId('4c5f9d2d421aa90fb9000002'),
u'age': 22,
u'name': u'shanshan2'},
{u'_id': ObjectId('4c5f9d34421aa90fb9000003'),
u'age': 23,
u'name': u'shanshan3'}]

Conditional Operator: $gt $lt(gt= greater than, lt=less than)

//查找name不等于abeen,并且age大于22的
In [29]: list(table.find({"name": {"$ne": "abeen"}, "age":{"$gt": 22}}))
Out[29]:
[{u'_id': ObjectId('4c5f9d34421aa90fb9000003'),
u'age': 23,
u'name': u'shanshan3'}]

获取子集 $ne  $slice 

//select "age" from table where name = "abeen"
In [42]: list(table.find({"name": "abeen"}, {"age" : 1}))
Out[42]: [{u'_id': ObjectId('4c5f9cbc421aa90fb9000000'), u'age': 27}]

//get all posts about mongodb without "age"
In [43]: list(table.find({"name": "abeen"}, {"age" : 0}))
Out[43]: [{u'_id': ObjectId('4c5f9cbc421aa90fb9000000'), u'name': u'abeen'}]

//name不等于abeen的"age"信息,取前5条
In [48]: list(table.find({"name": {"$ne":"abeen"}}, {"age":{"$slice":5}}))
//取name信息,从第10条开始取20条
In [54]: list(table.find({}, {"name": {"$slice": [10,20]}}))
//取name信息,从后20条开始取10条
In [55]: list(table.find({}, {"name": {"$slice": [-20,10]}}))

取数值范围

//age大于23的
In [56]: list(table.find({"age":{"$gt":23}}))
Out[56]: [{u'_id': ObjectId('4c5f9cbc421aa90fb9000000'), u'age': 27, u'name': u'abeen'}]

//age小于23的
In [57]: list(table.find({"age":{"$lt":23}}))
Out[57]:
[{u'_id': ObjectId('4c5f9ccb421aa90fb9000001'),
u'age': 22,
u'name': u'shanshan'},
{u'_id': ObjectId('4c5f9d2d421aa90fb9000002'),
u'age': 22,
u'name': u'shanshan2'}]
//age大于等于23的
In [58]: list(table.find({"age":{"$gte":23}}))
Out[58]:
[{u'_id': ObjectId('4c5f9cbc421aa90fb9000000'), u'age': 27, u'name': u'abeen'},
{u'_id': ObjectId('4c5f9d34421aa90fb9000003'),
u'age': 23,
u'name': u'shanshan3'},
{u'_id': ObjectId('4c5fa2ab421aa90fb9000004'),
u'address': u'da zhong si',
u'age': 23,
u'name': u'shanshan3'}]

//age小于等于23的
In [59]: list(table.find({"age":{"$lte":23}}))
Out[59]:
[{u'_id': ObjectId('4c5f9ccb421aa90fb9000001'),
u'age': 22,
u'name': u

转载于:https://www.cnblogs.com/jayruan/p/5767291.html

MONGODB 与sql聚合操作对应图相关推荐

  1. mongoDB中的聚合操作

    本文来说下mongoDB中的聚合操作 文章目录 概述 概述 MongoDB 中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果.有点类似 SQL 语句中的 ...

  2. 二、mongodb数据库系列——聚合操作 索引操作 权限管理

    一.mongodb的聚合操作 学习目标 了解 mongodb的聚合原理 掌握 mongdb的管道命令 掌握 mongdb的表达式 1 mongodb的聚合是什么 聚合(aggregate)是基于数据处 ...

  3. MongoDB——分页排序聚合操作

    原始数据: /* 1 */ {"_id" : ObjectId("5b604ac423cc834a5495d780"),"name" : & ...

  4. Scrapy框架之MongoDB聚合操作

    目录 MongoDB聚合操作 聚合操作的基本语法 常用的聚合操作 管道命令之$group 按照某个字段进行分组 详解 计算集合中某个字段的平均值 常用表达式 管道命令之$match 示例 管道命令之$ ...

  5. 硬货来了!轻松掌握 MongDB 流式聚合操作

    点击上方"肉眼品世界", 右上角选择"设为星标" 专注个人深度价值成长 " 阅读本文大概需要 15 分钟. " 信息科学中的聚合是指对相关数 ...

  6. MongoDB——聚合操作详解

    聚合(Aggregation)为集合文档数据提供各种处理数据方法,并返回计算结果. MongoDB提供了3种方式来执行聚合命令: 聚合管道方法 map-reduce方法 单一目标聚合方法 1. 聚合管 ...

  7. mongoDB聚合操作_aggregate()归纳

    mongoDB聚合操作 文章目录 1.准备一组数据 2.$group 分组管道 2.1 统计单组 2.2 统计多组 3.$match 过滤管道 拓展 统计数据个数 4.$project 映射管道 5. ...

  8. 04 MongoDB各种查询操作 以及聚合操作总结

    基础篇(能解决工作中80%的问题): MongoDB的概述.应用场景.下载方式.连接方式和发展历史等 MongoDB数据类型.重要概念以及shell常用指令 MongoDB文档的各种增加.更新.删除操 ...

  9. mongodb的聚合操作

    mongodb的聚合操作 1 mongodb的聚合是什么 聚合(aggregate)是基于数据处理的聚合管道,每个文档通过一个由多个阶段(stage)组成的管道,可以对每个阶段的管道进行分组.过滤等功 ...

最新文章

  1. 16个免费和开源商业智能工具
  2. 大厂 CEO 一年薪酬拿多少?
  3. 解决ms_cannot_allocmem错误的两种方法
  4. 如何使用 Redis 实现大规模的帖子浏览计数
  5. NYOJ 679 贪婪的商店
  6. linux中查看路由命令是什么,linux下查看路由的命令
  7. Extjs 4.x 得到form CheckBox的值
  8. BP神经网络预测(python)
  9. 卫星影像的RPC参数
  10. 诛仙服务器技能修改,【诛仙422】自己修改的特色一键端(2018.10.11号更新修复BOOS不刷新BUG)技能修改补丁...
  11. 10分钟教你生成超高逼格微信朋友圈
  12. 联想 ThinkPad E480无线网卡配置错误导致无法连接无线网解决方案
  13. 安卓上哔哩哔哩视频的导出
  14. php网站 域名授权 怎么破,使用php进行域名授权代码 - 小俊学习网
  15. 开封大学计算机专业录取分数线,开封大学录取分数线2021是多少分(附历年录取分数线)...
  16. 计算机网络笔记(3) 网络应用P2P架构
  17. SAP MTO案例教程目录2022
  18. 菜鸟网络面试——123面
  19. 初创电商步步谈(一)- 前期准备的内容真不少
  20. Python 优化 回溯下降算法

热门文章

  1. 《图解深度学习》图书及代码,16章带你无障碍深度学习
  2. 【干货】卷积神经网络Alex-Net、VGG-Nets、Network-In-Network案例分析
  3. 带你自学Python系列(一):变量和简单数据类型(附思维导图)
  4. ios加载本地html懒加载图片方案,IOS开发中加载大量网络图片优化方法
  5. python字典键值可以是元组或列表吗_Python列表、元组、字典、集合的内置使用方法...
  6. mac matlab 中文乱码,MAC让Matlab编辑器显示中文的方法
  7. element table滚动条占宽度_HTML table表格 固定表头 tbody加滚动条
  8. Windows修改远程桌面端口方法步骤
  9. vscode 开发vue必备插件_vsCode开发vue项目必备插件
  10. python numpy遍历_NumPy 迭代数组