-
Type: Improvement
-
Resolution: Done
-
Priority: Minor - P4
-
Affects Version/s: None
-
Component/s: Aggregation Framework
-
Fully Compatible
-
Query 2020-11-30, Query 2020-12-14
This could be described as $ifNull expression that accepts multiple arguments (rather than current two only). First non-null expression would be used.
Original description:
It would be great if instead of making a long list of conditionals you could use any $any operator to get the first of the fields that exists.
Ex:
var docs = [ { 'a': true }, { 'b': true }, { 'a': true} ... ]
{ '$project': { 'wow': { '$any': [ '$a', '$b', '$b.nested', ... ] } } }
This would make it easy to project an _id for use by a $group stage in situations where you have varied document schema.
For example, the next stage of the pipeline could be:
{ $group: { _id: { wow: '$wow' }, count: { '$sum': 1 } } }
- is depended on by
-
CSHARP-3282 Extend $ifNull to accept more than two arguments
- Closed
-
JAVA-3900 Extend $ifNull to accept more than two arguments
- Closed