orm2 中文文档 8. 聚合
译者:飞龙
来源:Aggregation
如果你需要从一个模型中获取一些聚合值,你可以使用Model.aggregate()
。下面通过一个例子来展示:
Person.aggregate({ surname: "Doe" }).min("age").max("age").get(function (err, min, max) {console.log("The youngest Doe guy has %d years, while the oldest is %d", min, max);
});
可以传递一个含有属性的Array
来选择仅仅保留一小部分属性。方法也会接收一个Object
来定义条件。
下面是一个展示如何使用.groupBy()
的例子:
// 和 "select avg(weight), age from person where country='someCountry' group by age;" 相同
Person.aggregate(["age"], { country: "someCountry" }).avg("weight").groupBy("age").get(function (err, stats) {// stats 是一个数组,每个记录都有 'age' 和 'avg_weight' 属性
});
基本的 .aggregate()
方法
limit()
:你可以传递一个数值作为个数,或者两个数值分别作为偏移和个数order()
:和Model.find().order()
相同
额外的 .aggregate()
方法
min
max
avg
sum
count
(它有一个快捷方式 -Model.count
)
有更多的聚合函数是依赖于驱动的(比如数学函数)。
orm2 中文文档 8. 聚合相关推荐
- orm2 中文文档 6. 查找记录
译者:飞龙 来源:Finding items find 查找匹配标准的记录,可以链式查询(见下文): Person.find({status:'active'}, function(err, resu ...
- orm2 中文文档 5. 同步和删除模型
译者:飞龙 来源:Syncing and dropping models 同步是一项功能方法,可以在数据库里为你的模型和关联创建所需的表来工作.现存的表并不会被替换,它们只会在不存在的时候被创建. 同 ...
- orm2 中文文档 4.3 extendsTo(一对一关系)
译者:飞龙 来源:extendsTo 你可能想把可选的属性分割到另一个表中.每个扩展都会是一个新的表,其中每一行的唯一标识符是主模型实例的id. 例如: var Person = db.define( ...
- orm2 中文文档 4.2 hasMany(多对多关系)
译者:飞龙 来源:hasMany hasMany 是多对多的关系(包括连接表). 例如:Patient.hasMany('doctors', Doctor, { why: String }, { re ...
- orm2 中文文档 4.1 hasOne(多对一关系)
译者:飞龙 来源:hasOne hasOne关联是一种多对一的关系,意思是你定义的模型可以有多个实例指向一个其它的实例(所属相同模型或不同模型). 用法 Animal.hasOne(associati ...
- orm2 中文文档 3.3 模型钩子
译者:飞龙 来源:Model Hooks 如果你想要监听发生在模型实例上的事件,你可以附带一个函数,它会在发生时调用. 现在支持下面这些事件: afterLoad:(无参数)加载和准备所用实例之后: ...
- orm2 中文文档 3.2 模型验证器
译者:飞龙 来源:Model Validations Enforce模块用于验证数据.对于使用以前的验证器的用户,还可以继续使用,它们中的一部分整合到了enforce,剩余部分还没有.推荐你开始使用o ...
- orm2 中文文档 3.1 模型属性
译者:飞龙 来源:Model Properties 模型和一些关联具有一个或多个属性,每个属性有类型以及一些可选设置,你可以自行选择它们(或使用默认设置). 类型 受支持的类型是: text:文本字符 ...
- orm2 中文文档 3. 定义模型
译者:飞龙 来源:Defining Models 在[连接](1. Connecting to Database.md)之后,你可以使用连接对象(db)来定义你的模型.你需要指定模型的名称,一个用于描 ...
最新文章
- CS224n Assignment 2
- vi/vim 中批量在行插入或删除指定字符
- leetcode 316. Remove Duplicate Letters | 316. 去除重复字母(单调栈解法)
- linux内核函数open源码,open()在Linux内核的实现(1)-基本实现
- java string 精度_Java 中的浮点数取精度方法
- python读取excel日期和时间数据_python 在excel文件中写入date日期数据,以及读取excel日期数据,如何在python中正确显示date日期。...
- DragControl
- union中结构体整合后字节对齐问题
- 数据结构c语言版第4版答案,严蔚敏版数据结构(C语言版)参考答案第四、五章
- 水下无线光通信关键技术与未来展望
- DM420步进电机驱动器
- 大数据、物联网技术、物联网卡,对我们生活带来的影响
- 纤维水泥板及配件建筑材料英国UKCA认证—EN 492
- LPC55S69开发笔记
- IP、MAC地址,交换机路由器,ARP、NAT协议串讲
- web3.js的provider
- 智能指针shared_ptr、unique_ptr、weak_ptr
- web基础(一)--------标签
- Zabbix4.4 技术解决方案(实战篇) 监控 Nginx 日志 统计WEB网站PV和UV
- 解决“npm、node不是内部或外部命令,也不是可运行的程序或批处理文件的方法记录
热门文章
- python爬虫爬取图片代码_python爬虫实战 爬取天极图片
- python算法应用(五)——搜索与排名1(连接数据库及简单排名)
- ROS 教程之 network:多台计算机之间网络通信(1)
- java老年代_Java新生代老年代的划分及回收算法
- mysql中语句块当事务,MySQL事务与隔离级别
- 解析java程序设计第二版答案,解析Java程序设计答案
- 【重难点】【RabbitMQ 02】如何避免消息重复投递和消息重复消费、如何防止消息丢失、如何保证消息的顺序性、如何保证消息队列的可用性
- 【小项目】SSM 实现单表 CRUD
- 【高校宿舍管理系统】第六章 用户管理和年级管理
- Serializable序列化