【问题标题】:dotnet mongodb driver 2.3 and mapreduce not workingdotnet mongodb 驱动程序 2.3 和 mapreduce 不工作
【发布时间】:2016-12-13 20:47:01
【问题描述】:

我正在尝试使用 c# 2.3 驱动程序执行一个非常简单的 mongodb mapreduce,但出现异常:

代码是:`

字符串 StringDeConexao = "mongodb://10.0.0.211:27017";

        MongoClient client = new MongoClient(StringDeConexao);
        var servidor = client.GetDatabase("distribuicoes");
        var collection = servidor.GetCollection<BsonDocument>("processo");
        var mapa = new BsonJavaScript(@"function() {
                        var chave = this.Natureza;
                        var valor = {
                                        this.NumeroDoProcesso,
                                        this.Comarca,
                                        this.Natureza,
                                        this.Classe,
                                        this.Assunto.AssuntoPrincipal,
                                        this.Autor.Nome,
                                        this.Autor.TipoDePessoa,
                                        this.CodigoCnaeAutor,
                                        this.Reu.Nome,
                                        this.Reu.TipoDePessoa,
                                        this.CodigoCnaeReu,
                                        count:1
                                    };
                                    emit(chave, valor);
                                };");
        var reducao = new BsonJavaScript(@"function(chave, valores) {
                            var ObjetoReduzido = {
                                                    Natureza: chave,
                                                    count: 0
                                                   };
                            valores.ForEach(function(valor) {

                                                     ObjetoReduzido.count+= valor.count;
                                                   };
                                                     return Objeto.Reduzido;
                            };");

       var pesquisa = Builders<BsonDocument>.Filter.Regex("Natureza", new BsonRegularExpression("c[ií]vel", "i")); 

        var option = new MongoDB.Driver.MapReduceOptions<BsonDocument, String>();
        option.Filter = pesquisa;
        option.OutputOptions = Inline;


        var result = collection.MapReduce(mapa, reducao, option);`

它适用于 mongodb shell。

感谢您的帮助。

【问题讨论】:

  • 它说“附加信息:命令 mapreduce 失败:异常:SyntaxError: Unexpected token ..”但我真的看不出有哪里。
  • 能否请您发布 mongo shell 版本的 mapreduce ?我认为这里的问题是由于valor 的JSON 语法。它需要key:value 对。

标签: c# mongodb mapreduce driver


【解决方案1】:

您的 ForEach() 格式不正确,并且您在每个函数上都有(有)尾随分号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-25
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    相关资源
    最近更新 更多