博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
4.MongoDB聚合
阅读量:4048 次
发布时间:2019-05-25

本文共 879 字,大约阅读时间需要 2 分钟。

1.count 求总数

db.foo.count()

db.foo.find().length()

db.foo.find().count()

 

2.distinct 去重

查看集合foo中所有bar的值

db.runCommand({"distinct":"foo","key":"bar"})

 

3.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;   

    }

}},"condition":{"day":{"$gt":"2010/09/30"}}})

"ns":"stocks" 指定要进行分组的集合

"key":"day" 指定文档要分组依据的键,这里是day

"initial":{"time":0} 初始化累加器的值

"$reduce":function(doc,prev){...} doc是当前文档,prev是累加器文档

"condition":{"day":{"$gt":"2010/09/30"}} 也可以是cond或者q作为键,用于filter,最简单的{"$exists":true},防止没有依据的键被分到了一组

 

(1)使用完成器 finalizer

精简从数据库传到用户的数据,在每组函数传递到客户端之前被调用一次

 

(2)将函数作为键使用

db.posts.group({"ns":"posts","$keys":function(x){return age - 10;},....})

 

4.MapReduce

1.map 映射

将操作映射到集合中每个文档 可以无作为,或产生一些键和X个值

 

2.中间过程 shuffle 洗牌

按照键分组,并将产生的键值组成列表放到对应的键中

 

3.reduce 化简

把列表中的值化简成一个单值

 

 

 

 

 

 

转载地址:http://nqyci.baihongyu.com/

你可能感兴趣的文章
openstack虚拟机创建流程
查看>>
openstack网络总结
查看>>
excel 查找一个表的数据在另一个表中是否存在
查看>>
centos 7 上配置dnsmasq 同时支持ipv4和ipv6的DHCP服务
查看>>
AsyncTask、View.post(Runnable)、ViewTreeObserver三种方式总结frame animation自动启动
查看>>
Android中AsyncTask的简单用法
查看>>
解决跨网场景下,CAS重定向无法登录的问题(无需修改现有代码)
查看>>
java反编译命令
查看>>
activemq依赖包获取
查看>>
概念区别
查看>>
final 的作用
查看>>
在Idea中使用Eclipse编译器
查看>>
idea讲web项目部署到tomcat,热部署
查看>>
Idea下安装Lombok插件
查看>>
zookeeper
查看>>
Idea导入的工程看不到src等代码
查看>>
技术栈
查看>>
Jenkins中shell-script执行报错sh: line 2: npm: command not found
查看>>
8.X版本的node打包时,gulp命令报错 require.extensions.hasownproperty
查看>>
Jenkins 启动命令
查看>>