Я пытаюсь создать очень простой пример сокращения карты, который также включает запрос в вызов API MapReduce.
В моей коллекции много записей, отформатированных следующим образом:
{ "_id" : { "$binary" : "PdYV4WMTAEyYMQHXJZfzvA==", "$type" : "03" },
"firstname" : "Matthew",
"surname" : "Chambers",
"email" : "" }
Код выглядит следующим образом:
var map = @"
function() {
emit(this.surname, { count : 22 });
}";
var reduce = @"
function(key, emitValues) {
return { count : emitValues[0].count };
}";
List<BsonValue> contactIds = new List<BsonValue>();
contactIds.Add(new Guid("A04FC88D-7BF7-443D-B5C3-EB11EE2B36DF"));
contactIds.Add(new Guid("26B690B3-5ED7-47F4-A878-3906E28BBC58"));
MongoDB.Driver.Builders.QueryConditionList queryList = MongoDB.Driver.Builders.Query.In("_id", BsonArray.Create(contactIds));
//var mr = personCollection.MapReduce(map, reduce);// THIS WORKS!
var mr = personCollection.MapReduce(queryList, map, reduce); // THIS FAILS
Все работает, если я не включаюqueryList в вызове MapReduce.Однако, если я включаю queryList, то получаю следующую ошибку времени выполнения:
Команда 'mapreduce' не выполнена: ошибка подтверждения db (ответ: {"утверждение": "'out" должно бытьстрока или объект "," assertionCode ": 13606," errmsg ":" Ошибка подтверждения db "," ok ": 0}) в MongoDB.Driver.MongoDatabase.RunCommandAs [TCommandResult] (команда IMongoCommand) в C: \ work \10gen \ mongodb \ mongo-csharp-driver \ Driver \ Core \ MongoDatabase.cs: строка 621 в MongoDB.Driver.MongoCollection.MapReduce (карта BsonJavaScript, уменьшение BsonJavaScript, параметры IMongoMapReduceOptions) в C: \ work \ 10gen \ mongobcsharp-driver \ Driver \ Core \ MongoCollection.cs: строка 788 в MongoDB.Driver.MongoCollection.MapReduce (запрос IMongoQuery, карта BsonJavaScript, сокращение BsonJavaScript) в C: \ work \ 10gen \ mongodb \ mongo-csharp-driver \ Driver \Core \ MongoCollection.cs: строка 823 в HPSLucene.Models.Mongo.MapReduce () в C: \ Inetpub \ wwwroot \ HPSLucene \ HPSLucene \ Models \ Mongo.cs: строка 158
Кто-нибудь знает, чтопроблемам есть?Большое спасибо.