unionWith
Combines two aggregations into a single result set.
$unionWith
outputs the combined result set (including duplicates) to the next stage. The order in which the combined result set documents are output is unspecified.
Namespacing
other must be a pipeline from the same namespace. It may be a pipeline from the same collection or another collection, as long as they are both part of the same namespace.
Example
interface Vehicle {
val brand: String,
}
class Car(
override val brand: String,
val enginePower: Int,
) : Vehicle
class Bike(
override val brand: String,
val hasBasket: Boolean
)
val selectedCars = cars.aggregate()
.match { Car::enginePower gt 30 }
.project { include(Car::brand) }
.reinterpret<Vehicle>()
val selectedVehicles = bikes.aggregate()
.project { include(Bike::brand) }
.reinterpret<Vehicle>()
.unionWith(selectedCars)
.limit(5)
.toList()
Content copied to clipboard