MongoDB学习三
来源:互联网 发布:电视直播软件live官网 编辑:程序博客网 时间:2024/06/06 21:05
MongoDB的高级操作:聚合和游标
(1)聚合操作:
<1>count
获取搜索结果的数据条数
<2>distinct
获取指定地段的集合,不允许重复
>>> db.student.find();{ "_id" : ObjectId("55eb9d9d900da635cb33f220"), "name" : "liumengyang", "city" : "dalian" }{ "_id" : ObjectId("55eb9da9900da635cb33f221"), "name" : "lidongqing", "city" :"dalian" }{ "_id" : ObjectId("55ebd440900da635cb33f222"), "name" : "ketty", "city" : "hengshui" }>>>> db.student.distinct("city");[ "dalian", "hengshui" ]
<3>group
key:要进行分组的key
initial:每组都分享的一个初始化函数
$reduce:这个函数的第一个参数就是当前的文档对象,第二个参数是上一次function操作的累计对象,第一次为initial中的函数。
condition:过滤条件
finalize:每一组文档执行完毕以后,多会触发这个方法,可以用来在集合里面加上count属性【用来表名每一组的数据量】
使用实例:
> db.student.group({... "key":{"city":true},... "initial":{"person":[]},... "$reduce":function(cur,prev){ prev.person.push(cur.name); },... "condition":{"city":{$nin:["beijing"]}},... "finalize":function(out){...... out.count = out.person.length;... }...... })[ { "city" : "dalian", "person" : [ "liumengyang", "lidongqing" ], "count" : 2 }, { "city" : "hengshui", "person" : [ "ketty" ], "count" : 1 }, { "city" : "handan", "person" : [ "horse", "xiaowanzi" ], "count" : 2 }, { "city" : "xingtai", "person" : [ "bird" ], "count" : 1 }]>
(4)mapreduce
mapreduce是一种编程模型,用在分布式计算中,包括两个函数:map函数和reduce函数
> var map = function(){... emit(this.name,{count:1});... }>>> var reduce =... function(key,value){... var result = {count:0};... for(var i=0;i<value.length;i++){... result.count += value[i].count;... }... return result;... }>>> db.student.mapReduce(map,reduce,{"out":"collection"});{ "result" : "collection", "timeMillis" : 64, "counts" : { "input" : 7, "emit" : 7, "reduce" : 0, "output" : 7 }, "ok" : 1}>>> db.collection.find();{ "_id" : "bird", "value" : { "count" : 1 } }{ "_id" : "horse", "value" : { "count" : 1 } }{ "_id" : "ketty", "value" : { "count" : 1 } }{ "_id" : "lidongqing", "value" : { "count" : 1 } }{ "_id" : "liumengyang", "value" : { "count" : 1 } }{ "_id" : "monkey", "value" : { "count" : 1 } }{ "_id" : "xiaowanzi", "value" : { "count" : 1 } }>>>
0 0
- MongoDB学习笔记《三》
- mongodb学习(三)
- MongoDB学习笔记<三>
- Mongodb 学习总结《三》
- MongoDB学习三
- Mongodb学习笔记(三)
- MongoDB学习三
- mongoDB学习笔记三
- MongoDb学习笔记三 MongoDB and PyMongo
- MongoDB学习之三----Java操作MongoDB
- MongoDB学习之旅三:MongoDB体系结构
- 【MongoDB】学习MongoDB推荐三本书
- MongoDB 学习笔记三 JAVA调用MongoDB
- MongoDB的学习(三)-MongoDB操作符
- mongo 学习三--mongodb 数据类型
- Mongodb学习笔记速记(三)
- mongodb初步学习(三)
- MongoDB学习笔记(三)
- codeforces 482 B Interesting Array <STL map 的运用>
- Git&GitHub
- portlet 与 servlet 区别,问题:传值,方法与返回值命名问题
- Java主线程等待所有子线程执行完毕再执行解决办法集
- hdu5429(BestCoder Round #54 (div.2) 1003题)
- MongoDB学习三
- jQuery的Cookie封装,与PHP交互
- Stack - Min Stack
- ZOJ 3714 Java Beans
- Javascript基础(三)对象继承
- 持久化存储 (SQLite)
- 欢迎使用CSDN-markdown编辑器
- 李航:深度学习还局限在复杂的模式识别上
- 漫谈C指针第八讲---参数传递的三道题目