Details
-
New Feature
-
Resolution: Unresolved
-
Major - P3
-
None
-
None
-
Query Execution
-
Fully Compatible
Description
When using $cond in projections, it would be useful to have $match as a boolean expression.
Use Case:
|
db.objects.aggregate([
|
{
|
$match: { status: "active" } |
}, {
|
$project: {
|
name: 1,
|
meta: 1,
|
tags: 1,
|
score: {
|
$add: [
|
{
|
$cond:[{
|
$match: { tags: "a tag I like" } |
}, 100, 0]
|
}, {
|
$cond:[{
|
$match: { tags: "a tag I really like" } |
}, 250, 0]
|
}, {
|
$cond:[{
|
$match: { tags: "a tag I dislike" } |
}, -100, 0]
|
}, {
|
$cond:[{
|
$match: { "meta.promoted": true } |
}, 1000, 0]
|
}
|
]
|
}
|
}
|
},{
|
$match: { score: { $gt: 0 } }
|
}
|
])
|
This would eliminate the need to add other $cond expressions like $in (SERVER-6146)
Attachments
Issue Links
- is related to
-
SERVER-34766 Allow $expr or $$field in the $geoNear stage
-
- Closed
-
-
SERVER-38198 Remove the requirement that $geoNear needs to be in the first stage of the pipeline
-
- Closed
-
- related to
-
SERVER-8582 Extend document expression language in aggregation to support advanced document filtering.
-
- Closed
-