Details
-
Improvement
-
Resolution: Duplicate
-
Major - P3
-
None
-
2.4.1
-
None
-
.NET Core
Description
Hi! If I use a lot of expressions "where" we end up with many operators $match. I wish the output was a single operator $match
Exmaple:
if (filter.RoomCounts?.Count > 0) |
{
|
realEstates = realEstates.Where(r => filter.RoomCounts.Contains(((Room)r.Unit).RoomCount));
|
}
|
if (filter.HouseTypes != null) |
{
|
realEstates = realEstates.Where(r => filter.HouseTypes.Contains(((Room)r.Unit).HouseType));
|
}
|
Translate to
{
|
"$match": {
|
"real_estate_status": {
|
"$in": [
|
1
|
]
|
}
|
}
|
},
|
{
|
"$match": {
|
"unit.operation_type": {
|
"$in": [
|
2
|
]
|
}
|
}
|
},
|
But this is better
"$match": {
|
"real_estate_status": {
|
"$in": [
|
1
|
]
|
},
|
"unit.operation_type": {
|
"$in": [
|
2
|
]
|
}
|
}
|
Attachments
Issue Links
- duplicates
-
CSHARP-1838 Merge multiple .Where() clauses to a single $match before querying
-
- Closed
-