#c# #mongodb #aggregation-framework
Вопрос:
У меня есть запрос, написанный на c# с использованием драйвера MongoDB.
var project = new BsonDocument
{
{ "Id" , "$asCompany._id"}, { "Code" , "$asCompany.Code"}, { "Name" , "$asCompany.Name"}, { "Address" , "$asCompany.Address"},
{ "ConcurrencyId" , new BsonDocument{ { "$concat", new BsonArray{ "1_3_", "$asCompany._id" } } } }
};
Приведенная выше инструкция используется в качестве проекта в приведенном ниже коде.
var joinresult3 = userCollection.Aggregate()
.Match(user => user.Id == userId)
.Lookup("Division", "Divisions.DivisionId", "_id", "asDivisons")
.Lookup("Company", "asDivisons.CompanyId", "_id", "asCompany")
.Project(project).ToList();
Итак, утверждение, которое я написал для проекции, генерирует следующий код на стороне сервера. Что, по-видимому, правильно.
{ "$project" : { "Id" : "$asCompany._id", "Code" : "$asCompany.Code", "Name" : "$asCompany.Name", "Address" : "$asCompany.Address", "ConcurrencyId" : { "$concat" : ["1_3_", "$asCompany._id"] } } }
Но код c# выдает следующее исключение.
Сбой командной агрегации: $concat поддерживает только строки, а не массив.
Заранее спасибо.
Комментарии:
1. вы должны добавить примеры данных на игровую площадку и поделиться ссылкой в своем вопросе, чтобы ppl мог поиграть с ними, чтобы найти решение.