2016-12-13 6 views
1

Я пытаюсь выполнить очень простой MongoDB MapReduce с C# 2.3 водителя, но я получаю исключение:DotNet драйвер MongoDB 2,3 и 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.

Спасибо за любую помощь.

+0

исключение? – McNets

+0

Он говорит: «Дополнительная информация: Command mapreduce failed: exception: SyntaxError: Неожиданный токен ..», но я действительно не вижу, где есть. – user1548763

+0

Не могли бы вы разместить версию mongo shell of mapreduce? Я думаю, что проблема здесь объясняется синтаксисом JSON «доблести». Для этого требуются пары «ключ: значение». –

ответ

0

Ваш ForEach() был (был) сформирован неверно и у вас есть (есть) конечные точки с запятой для каждой из функций.