Details
-
Bug
-
Resolution: Done
-
Major - P3
-
2.4.1
-
None
-
ASP.NET Core
Description
Using a filter via .Where() inside a Select uses the subdocument's value instead of the parent document's.
i.e:
// Some comments here
|
select new |
{
|
Prev = prev.Where(x => x.LastActionTime < visit.FirstActionTime && x.VisitorId != null) |
} into r
|
Expected result:
"Prev": {
|
"$filter": {
|
"input": "$prev",
|
"as": "x",
|
"cond": {
|
"$and": [
|
{
|
"$lt": [
|
"$$x.LastActionTime",
|
"$FirstActionTime"
|
]
|
},
|
{
|
"$ne": [
|
"$$x.VisitorId",
|
null
|
]
|
}
|
]
|
}
|
}
|
},
|
Actual result:
"Prev": {
|
"$filter": {
|
"input": "$prev",
|
"as": "x",
|
"cond": {
|
"$and": [
|
{
|
"$lt": [
|
"$$x.LastActionTime",
|
"$$x.FirstActionTime"
|
]
|
},
|
{
|
"$ne": [
|
"$$x.VisitorId",
|
null
|
]
|
}
|
]
|
}
|
}
|
},
|