-
Type: New Feature
-
Resolution: Done
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Aggregation Framework
-
None
-
Fully Compatible
-
Quint Iteration 7, QuInt 8 08/28/15, Quint 9 09/18/15, QuInt A (10/12/15)
Summary
Add a $lookUp operator to the aggregation pipeline to pull data from one collection into a pipeline executed on a different collection.
Goals
- Aggregation stage to do left outer join
- Works across any shard/collection boundary
- left-hand side sharded, right-hand side unsharded
Non-Goals
- Enforced collocation of “related” chunks.
- More parallelization for agg
- Small collections that co-exist on all shards (aka, “enum” collections)
Examples
Forthcoming
- depends on
-
SERVER-12685 Expand $unwind behavior to include empty documents optionally
- Closed
- is duplicated by
-
SERVER-745 Embedded Document Expansion (Pseudo-JOINs)
- Closed
-
SERVER-5048 $project to have ability to get data from referenced collections (SQL-like "join")
- Closed
-
SERVER-11682 Aggregate on multiple collections
- Closed
-
SERVER-11865 A $findOne operator for $let,$map in $project phase
- Closed
-
SERVER-19270 Allow adding additional source collection to aggregation pipeline
- Closed
-
SERVER-432 server side expansion of DBRefs
- Closed
-
SERVER-970 MapReduce:add ability to process many collections at once
- Closed
-
SERVER-19476 Referenced Values
- Closed
-
SERVER-1632 improve find with using DBRef to support joins
- Closed
-
SERVER-21621 Piped query
- Closed
- is related to
-
DRIVERS-234 Aggregation Builder Support for 3.2
- Closed
-
SERVER-20504 Name aggregation operator for lookup: $lookup
- Closed
- related to
-
CSHARP-1374 $lookup
- Closed
-
JAVA-1936 Aggregation builder support for $lookup stage
- Closed