$lookup
is new in MongoDB 3.2. It performs a left outer join to an unsharded collection in the same database to filter in documents from the “joined” collection for processing.
To use $lookup
, the from
collection cannot be sharded.
On the other hand, sharding is a useful horizontal scaling approach.
What's the best practise to use them together?
Is it possible to do a $lookup aggregation between two databases in Mongodb? It is not possible to query using lookup in two different db's. $lookup in mongodb supports Performs a left outer join to an unsharded collection in the same database.
Sharding is the process of distributing data across multiple hosts. In MongoDB, sharding is achieved by splitting large data sets into small data sets across multiple MongoDB instances.
As the docs you quote indicate, you can't use $lookup
on a sharded collection. So the best practice workaround is to perform the lookup yourself in a separate query.
aggregate
query.Array#map
.find
query against the "from" collection, using a query like {foreignField: {$in: localFieldArray}}
Don't let the $lookup
limitation stop you from sharding collections that require it for scalability, just perform the lookup function yourself.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With