Hi I am using MongoDB.Driver.Legacy in C#
I am trying to link 4 different tables and query, I get "“The GroupJoin query operator is not supported.” error when I try looping the query.
Below is my code, please can some one help, what I need is straight farward query individual tables from MongoDB and then apply query to it
MongoClient client1 = new MongoClient(“mongodb://grXXXhstag:ilXXXXXXXsh.io:27017/?authSource=grXXg&readPreference=primary&appname=MongoDB%20Compass&directConnection=true&ssl=false”);
var server1 = client1.GetServer();
var db1 = server1.GetDatabase(“grooshstag”);
var offerCollection = db1.GetCollection(“OfferMasters”);
var locationCollection = db1.GetCollection(“LocationMaster”);
var userCardCollection = db1.GetCollection(“UserCardMaster”);
var bankCardCollection = db1.GetCollection(“BankCardMaster”);
var offerList = offerCollection.AsQueryable().Where(m => m.ActiveStatus == true);
var locationMasterList = locationCollection.AsQueryable().Where(k => k.ActiveStatus == true);
var userCardMasterList = userCardCollection.AsQueryable().Where(n => n.ActiveStatus == true && n.UserId == "60dade06ca166e25a8efdf58");
var bankCardMasterList = bankCardCollection.AsQueryable().Where(k => k.ActiveStatus == true);
Console.WriteLine("\n\nofferList => " + offerList.Count());
List<UserCardOffer> userCardOffersList = new List<UserCardOffer>();
if (offerList != null)
{
var query = from o in offerList
join l in locationMasterList.AsQueryable() on o.LocationId equals l.LocationId into locationData
join u in userCardMasterList.AsQueryable() on o.BankId equals u.BankId into cardData
join b in bankCardMasterList.AsQueryable() on o.BankId equals b.BankId into bankData
select new UserCardOffer()
{
offerMaster = o,
UserId = cardData.FirstOrDefault().UserId,
First6Digits = cardData.FirstOrDefault().First6Digits,
Last4Digits = cardData.FirstOrDefault().Last4Digits,
LocationName = locationData.FirstOrDefault().LocationName,
LocationAddress = locationData.FirstOrDefault().LocationAddress,
LocationType = locationData.FirstOrDefault().LocationType,
CardImagePath = bankData.FirstOrDefault().CardImagePath
};
foreach (var e in query)
{
Console.WriteLine("user id" + e.UserId);
}
}