Я пытаюсь построить построитель отчетов, мои данные в настоящее время сохраняются в mongodb. Коллекции mongo создаются динамически в соответствии с формами.
Мне нужно объединить несколько коллекций монго в C # и извлечь выбранные данные.
Пример у меня есть 3 коллекции
Компания - список всех компаний
Директор - Список всех директоров
CompanyDirector - Список каждого директора для комбинации компании
Я хочу присоединиться к Компании с Директором Компании и Директором Компании с Директором и получить список всех Директоров в компании динамически.
Это один из вариантов использования.
Поскольку построитель отчетов является динамическим, количество коллекций меняется, имена коллекций меняются, количество объединений также меняется.
Итак, как написать Joins on Mongo динамически из C #
Если он статический, я могу сделать что-то подобное, но как создать этот запрос динамически, я не смогу получить.
var Client = new MongoClient(connection);
var newDB = Client.GetDatabase("newDB");
var compDir = newDB.GetCollection<BsonDocument>("CompanyDirector");
var dir = newDB.GetCollection<BsonDocument>("director");
var comp = newDB.GetCollection<BsonDocument>("company");
var query = from c in comp.AsQueryable()
join cd in compDir.AsQueryable() on c["CId"] equals cd["ID"]
join d in dir.AsQueryable() on cd["DID"] equals d["dId"]
where c["CompanyId"] == 7
select new
{
CompanyName = c["CompanyName"],
DirectorName = d["directorName"],
Email = d["email"],
CompId = cd["companyID"],
CompId2 = c["CompanyId"]
};