基本信息
    
    
        
    
    
        
        
    
    
        
        
    
    
    
        源码名称:C# mongodb map reduce 计算 实例源码下载
源码大小:1.47M
文件格式:.zip
开发语言:C# 
更新时间:2014-12-24
               友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
            
            
            
            
        
        
        嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
                
                微信扫码支付:2 元
        ×
        
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
       源码介绍
    
    
                                
        mongodb map-reduce计算 源码
主要参考:
http://docs.mongodb.org/manual/tutorial/map-reduce-examples/
http://odetocode.com/blogs/scott/archive/2012/03/19/a-simple-mapreduce-with-mongodb-and-c.aspx
	
	
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MongoDB.Bson;
using MongoDB.Driver;
using MongoDB.Driver.Builders;
namespace MongoDBWinDemo
{
    public partial class MapReduceForm2 : Form
    {
        public MapReduceForm2()
        {
            InitializeComponent();
        }
        public class Movie
        {
            public string Title { get; set; }
            public string Category { get; set; }
            public int Minutes { get; set; }
        }
        public MongoCollection<T> GetCollection<T>()
        {
            //var connectionString = "mongodb://localhost";
            //var client = new MongoClient(connectionString);
            //var server = client.GetServer();
            //var database = server.GetDatabase("test");
            //var collection = database.GetCollection<Entity>("entities");
            var connectionString = "mongodb://localhost";
            var client = new MongoClient(connectionString);
            var server = client.GetServer();
            var database = server.GetDatabase("test");
            var collection = database.GetCollection<T>("movies");
            return collection;
        }
        private void AddMovies(MongoCollection<Movie> collection)
        {
            var movies = new List<Movie>
            {
                new Movie
                {
                    Title = "The Perfect Developer",
                    Category = "SciFi",
                    Minutes = 118
                },
                new Movie
                {
                    Title = "Lost In Frankfurt am Main",
                    Category = "Horror",
                    Minutes = 122
                },
                new Movie
                {
                    Title = "The Infinite Standup",
                    Category = "Horror",
                    Minutes = 341
                }
            };
            collection.InsertBatch(movies);
        }
        private void btnCal_Click(object sender, EventArgs e)
        {
            string map = @"
            function() {
                var movie = this;
                emit(movie.Category, { count: 1, totalMinutes: movie.Minutes });
            }";
            string reduce = @"        
            function(key, values) {
                var result = {count: 0, totalMinutes: 0 };
                values.forEach(function(value){               
                    result.count  = value.count;
                    result.totalMinutes  = value.totalMinutes;
                });
                return result;
            }";
            string finalize = @"
            function(key, value){
      
              value.average = value.totalMinutes / value.count;
              return value;
            }";
            //var collection = db.GetCollection("movies");
            var collection = this.GetCollection<Movie>();
            AddMovies(collection);
            var options = new MapReduceOptionsBuilder();
            options.SetFinalize(finalize);
            options.SetOutput(MapReduceOutput.Inline);
            var results = collection.MapReduce(map, reduce, options);
            foreach (var result in results.GetResults())
            {
                //Console.WriteLine(result.ToJson());
                MessageBox.Show(result.ToJson());
            }
        }
    }
}