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 的语法-排序的更多相关文章

  1. mongodb中的排序和索引快速学习

    在mongodb中,排序和索引其实都是十分容易的,先来小结下排序: 1 先插入些数据    db.SortTest.insert( { name : "Denis", age : ...

  2. 非关系型数据库mongodb的语法模式

    from pymongo import MongoClient #连接 conn = MongoClient() #进入数据库 db = conn.edianzu #连接mydb数据库,没有则自动创建 ...

  3. MongoDB 基本语法笔记

    MongoDB常识 MongoDB Shell是MongoDB自带的交互式Javascript shell,所以可直接执行JS脚本,用来对MongoDB进行操作和管理的交互式环境. ObjectId: ...

  4. mongodb 基础语法

    参考原文:菜鸟教程 目录 一.数据库二.文档三.索引四.聚合 一.数据库 show dbs -- 查看所有数据库 use DATABASE_NAME -- 如果数据库不存在,则创建数据库,否则切换到指 ...

  5. MongoDB 查询语法

    转载 http://blog.163.com/lgh_2002/blog/static/440175262012052116455/ 详见官方的手册:http://www.mongodb.org/di ...

  6. mongodb c#语法基础

    这里采用的是mongoDB官网推荐使用.net驱动: http://mongodb.github.io/mongo-csharp-driver/2.0/getting_started/quick_to ...

  7. MongoDB概述&语法

    Nosql DB 这是一个非关系型数据库. 通常我们的数据库有三类:  关系型数据库(RDBMS),联机分析处理数据库(OLAP),和菲关系型数据库(NoSql). MongoDB属于第三种,而且是一 ...

  8. MongoDB查询语法

    mongoDb是非关系型数据库,用习惯了mssql,mysql等数据库的需要转换一下思维 mongoDb存的是与js的json结构一样的文档,表中的每一条记录都可以结构不同 1,大于,小于,大于等于, ...

  9. mongodb 基本语法

    成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作. 输入help可以看到基本操作命令: show dbs:显示数据库列表 show collections:显示 ...

随机推荐

  1. 2019.01.20 bzoj3999: [TJOI2015]旅游(树链剖分)

    传送门 树链剖分菜题. 题意不清差评. 题意简述(保证清晰):给一棵带权的树,每次从aaa走到bbb,在走过的路径上任意找两个点,求后访问的点与先访问的点点权差的最大值. 思路: 考虑暴力:维护路径的 ...

  2. CHAPITRE II

    J'ai ainsi vécu seul, sans personne avec qui parler véritablement, jusqu'à une panne[pan][机]故障 dans ...

  3. python3.4用函数操作mysql5.7数据库

    #!/usr/bin/env python # -*- coding:utf-8 -*- # __author__ = "blzhu" """ pyt ...

  4. Eclipse错误: 找不到或无法加载主类或项目无法编译10种解决大法

    1.在src文件夹上点右键-Build Path-Use as Source Folder,重新进行编译,一切正常了.2.在Eclipse工程文件夹上点右键-Refresh,重新编译,一功OK(这个方 ...

  5. SQL优化实战之加索引

    有朋友和我说他的虚机里面的mysql无法跑sql,但是在本地环境是这个sql是可以跑出来的.碰到这个问题第一反应是:死锁. 于是让他查询数据库的几个状态: 发现连即时锁都非常少,不是锁的问题. 进一步 ...

  6. WORD文档中插入页码的问题

    原文链接:http://www.360doc.com/content/11/0216/15/849254_93539436.shtml 一.页码从第二页开始1.选择“插入-页码”,打开“页码”对话框. ...

  7. 快速创建一个 spring mvc 示例

    1. 创建一个 servlet 项目 参考 http://www.cnblogs.com/zno2/p/5908589.html 2. 引入 spring mvc 依赖 <dependency& ...

  8. Cron连接正常工作5次后异常原因分析

    目录 目录 1 问题描述 1 分析定位 1 解决方法 2 附1:Cron工作流 3 附2:SIGPIPE发生的位置 3 如果一个shell命令的"$?"值为141,则它是收到了SI ...

  9. MyBatis(二)最简易的增、删、改、查

    这篇是承接上一篇的helloWorld程序.首先将一系列初始化的步骤再做一个工厂类进行包装,代码如下: package com.tinaluo.sun; import java.io.InputStr ...

  10. Maven之java application _HelloWord

    maven  是一个项目构建的一个工具; 一.环境的配置; 1.下载maven 解压放在一个路径下为了好找我们就将该文件放在 D:\javaNew\apache-maven-3.3.9 2.配置本地仓 ...