flask_ Mongodb 的语法-排序
MOngoDB的排序是挺有用的 ,跟MySQL有明显的区别 。。
它的原生语法的第一个参数为条件限定,第二个参数为排序字段
db.news.find({},{'_id':1}) #1是升序 -1是降序
pymongo的写法为:
db.news.sort([('_id',-1)])
MongoDB的进阶使用,分组操作
db.collection.aggregate([array]);
array 可以是任何一个或多个操作符。
group和match的用法,使用sqlserver,group的用法很好理解,根据指定列进行分组统计,可以统计分组的数量,也能统计分组中的和或者平均值等。
group之前的match,是对源数据进行查询,group之后的match是对group之后的数据进行筛选
同理,sort,skip,limit也是同样的道理:
{_id:1,name:"a",status:1,num:1} ,{_id:2,name:"a",status:0,num:2},{_id:3,name:"b",status:1,num:3}
以下是我综合列出来的一些实例,
应用一:统计name的数量和总数:
db.collection.aggregate([{$group:{_id:"$name",count:{$sum:1},total:{$sum:"$num"}}])
应用二:统计status =1 的那么的数量:
db.collection.aggregate([
{$match:{status:1}},
{$group:{_id:"$name",count:{$sum:1}}}
])
应用三:统计那么的数量,并且数量为小于2的:
db.collection.aggregate([
{$group:{_id:"$name",count:{$sum:1}},
{$match:{count:{$lt:2}}}
])
多列group,根据name和status进行多列
db.collection.aggregate([
{$group:{_id:{name:"$name",st:"status"},count:{$sum:1}}}
])
$project 该操作符很简单
db.collections.aggregate([
{$project:{name:1,status:1}}
])
结果是,只有_id,name,status 三个字段的表数据,相当于sql表达式select _id,name,status from collection
$unwind
这个操作符可以将一个数组的文档拆分为多条文档,在特殊条件下有用,这个还没有研究过 ~~·
以上基本可以实现大部分统计了,group前条件,group后条件,是很重要的
多多练习 , 我还差点
flask_ Mongodb 的语法-排序的更多相关文章
- mongodb中的排序和索引快速学习
在mongodb中,排序和索引其实都是十分容易的,先来小结下排序: 1 先插入些数据 db.SortTest.insert( { name : "Denis", age : ...
- 非关系型数据库mongodb的语法模式
from pymongo import MongoClient #连接 conn = MongoClient() #进入数据库 db = conn.edianzu #连接mydb数据库,没有则自动创建 ...
- MongoDB 基本语法笔记
MongoDB常识 MongoDB Shell是MongoDB自带的交互式Javascript shell,所以可直接执行JS脚本,用来对MongoDB进行操作和管理的交互式环境. ObjectId: ...
- mongodb 基础语法
参考原文:菜鸟教程 目录 一.数据库二.文档三.索引四.聚合 一.数据库 show dbs -- 查看所有数据库 use DATABASE_NAME -- 如果数据库不存在,则创建数据库,否则切换到指 ...
- MongoDB 查询语法
转载 http://blog.163.com/lgh_2002/blog/static/440175262012052116455/ 详见官方的手册:http://www.mongodb.org/di ...
- mongodb c#语法基础
这里采用的是mongoDB官网推荐使用.net驱动: http://mongodb.github.io/mongo-csharp-driver/2.0/getting_started/quick_to ...
- MongoDB概述&语法
Nosql DB 这是一个非关系型数据库. 通常我们的数据库有三类: 关系型数据库(RDBMS),联机分析处理数据库(OLAP),和菲关系型数据库(NoSql). MongoDB属于第三种,而且是一 ...
- MongoDB查询语法
mongoDb是非关系型数据库,用习惯了mssql,mysql等数据库的需要转换一下思维 mongoDb存的是与js的json结构一样的文档,表中的每一条记录都可以结构不同 1,大于,小于,大于等于, ...
- mongodb 基本语法
成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作. 输入help可以看到基本操作命令: show dbs:显示数据库列表 show collections:显示 ...
随机推荐
- VC调试小结
本机调试F5: 开始调试Shift+F5: 停止调试F10: 调试到下一句,这里是单步跟踪 F11: 调试到下一句,跟进函数内部Shift+F11: 从当前函数中跳出F9: 设置(取消)断点Outpu ...
- springboot实现xml传参和返回值
1.新建maven工程xml-bean-convert pom.xml如下 <?xml version="1.0" encoding="UTF-8"?&g ...
- openstack的网络、子网、端口的关系
network network 是一个隔离的二层广播域.Neutron 支持多种类型的 network,包括 local, flat, VLAN, VxLAN 和 GRE. locallocal 网络 ...
- iconfont阿里巴巴矢量图标库批量保存
F12输入——var iconList = document.querySelectorAll('.icon-gouwuche1');for (var i = 0; i < iconList.l ...
- warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
问题: yum安装软件时候报如下错误: warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOK ...
- Iframe跨域JavaScript自动适应高度
重点分析: 主域名页面:页面A,页面C 其它域名页面:页面B 步骤: 1.页面A(主域名)通过Iframe(id="iframeB")嵌套页面B(其它域名) 2.页面B(其它域名) ...
- Java EE Servlet 几个path
ContextPath Context ['kɒntekst] 不识庐山真面目,只缘身在此山中. 相对路径 RealPath 绝对路径 ServletPath 就是servlet-mapping 中 ...
- java类与继承(转载)
关于java的类与继承面链接是一个网友总结的,还有列子我个人觉得很详细 固拿来收藏,需要的朋友可从这里访问: http://www.cnblogs.com/dolphin0520/p/3803432. ...
- noip第21课作业
1. 遍历二叉树 [问题描述] 以先序的方式建立一棵二叉树,空结点用‘#’号表示,例如:abd###ce##f##,将建立一棵如下的二叉树: 输出其中序序列和后序序列,其中总结点个数不超过100. 输 ...
- vscode 调试node.js
在开发的过程中,几乎不可能一次性就能写出毫无破绽的程序,断点调试代码是一个普遍的需求. 作为前端开发工程师,以往我们开发的JavaScript程序都运行在浏览器端,利用Chrome提供的开发者工具就可 ...