我需要在聚合操作中使用多个
有人能帮忙吗?
我使用 Linq 时遇到了错误
$lookup
,涉及到3个集合的连接。我在C#驱动程序中尝试过$lookup
用户集合,但无法执行第二个涉及设置集合的$lookup
。有人能帮忙吗?
db.Transactions.aggregate([
{
$lookup:
{
from: "Account",
localField: "AccountId",
foreignField: "_id",
as: "Account"
}
},
{
$lookup:
{
from: "User",
localField: "UserId",
foreignField: "_id",
as: "User"
}
}
])
.match({
})
.project({})
以下是C#代码:
var account = _dbClient.GetDatabase(_dbName).GetCollection<Account>("Accounts");
var user = _dbClient.GetDatabase(_dbName).GetCollection<User>("Users");
var transaction = _dbClient.GetDatabase(_dbName).GetCollection<Transaction>("Transactions");
var result = (from t in transaction.AsQueryable()
join a in account.AsQueryable() on t.AccountId equals a.Id
join u in user.AsQueryable() on t.UserId equals u.Id into userList
from acc in userList.DefaultIfEmpty()
where acc.CompanyName.ToLower().Contains(companyName) && c.CreatedDate >= fromDate && c.CreatedDate <= toDate
select new TransactionHistory
{
Id = t.Id,
CompanyName = acc.CompanyName,
UserId = u.UserId
FirstName = u.FirstName
}).ToList();
我使用 Linq 时遇到了错误
$project 或 $group 不支持 {document}。
。
CompanyName.Contains()
。我尝试使用Linq
,但它会抛出消息说不支持Contains()
。 - codecodeNinja.Contains(xyz)
肯定是支持的...不确定Containts()
... - jazb$lookup
是什么意思?能否贴出代码片段以及(如果有的话)错误信息? - Wan B.$lookup
,它会显示语法错误。 - codecodeNinja