MongoDB学习--高级查询 [聚合Group]
2024-09-29 06:35:20
Group大约需要一下几个参数。
- key:用来分组文档的字段。和keyf两者必须有一个
- keyf:可以接受一个javascript函数。用来动态的确定分组文档的字段。和key两者必须有一个
- initial:reduce中使用变量的初始化
- reduce:执行的reduce函数。函数需要返回值。
- cond:执行过滤的条件。
- finallize:在reduce执行完成,结果集返回之前对结果集最终执行的函数。可选的
测试数据
//测试的数据
db.stocks.insert({"day": "2010/10/03", "time": "2010/10/03 03:47:01 GMT-400", "price": 4.23});
db.stocks.insert({"day": "2010/10/04", "time": "2010/10/04 11:28:39 GMT-400", "price": 4.27});
db.stocks.insert({"day": "2010/10/03", "time": "2010/10/03 05:00:23 GMT-400", "price": 4.10});
db.stocks.insert({"day": "2010/10/06", "time": "2010/10/06 05:27:58 GMT-400", "price": 4.30});
db.stocks.insert({"day": "2010/10/04", "time": "2010/10/04 08:34:50 GMT-400", "price": 4.01});
测试要执行的GROUP程序代码
db.runCommand({"group": {
"ns": "stocks",
"key": "day",
"initial": {"time": 0},
"$reduce": function(doc, prev) {
if (doc.time > prev.time) {
prev.price = doc.price;
prev.time = doc.time;
}
}
}});
执行之后的结果
{
"retval" : [
{
"time" : 0
}
],
"count" : 5,
"keys" : 1,
"ok" : 1
}
最新文章
- [转]关于SVN的操作批处理示例
- 绑定多个ddl
- 【递归】斐波那契数列第n个数
- Excel表格常用的函数,留着备用
- atitit.api设计 方法 指南 手册 v2 q929.docx
- 如何处理ABBYY中出现错误代码142和55的问题
- ASP.NET c#学习经验
- python Synchronization between processes
- Could not create local repository at /home/yizhenn/.m、IDEA倒入maven项目无法导报问题
- 小程序构建npm出现没有找到node_modules
- Java通过SMS短信平台实现发短信功能
- mybatis框架下物理分页的实现(整个工程采用的是springmvc、spring、mybatis框架,数据库是mysql数据库)
- Win8交互UX——笔交互
- Graphical vi-vim Cheat Sheet and Tutorial
- 如果我们的MCU调试不通过,我们该如何测试?(未完待续)
- sizeof数组名和字符指针是有区别的
- strust2的Action中validateXxx方法的用法
- 关于<;meta>;的各种用处以及移动端的常见问题
- 北京Uber优步司机奖励政策(12月8日)
- elastic search 查询语句
热门文章
- 数据库系统概论 SQL
- EasyUI-DataGrid之批量删除
- IT项目经理应具备的十大软技能
- XPath与Xquery
- redis学习心得之二【redis主从配置】
- dependencyManagement与dependencies区别
- Appium测试时如何关联到Genymotion模拟器
- Python入门基础教程(儿童版) [分享一本入门级教程]
- ASP.NET DropDownList1_SelectedIndexChanged使用
- MySQL更新时Error Code:1093和Error Code:1175的解决办法