MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB utilisera le sharding avec l'opérateur d'agrégation $lookup

Comme l'indiquent les documents que vous citez, vous ne pouvez pas utiliser $lookup sur une collection fragmentée. La meilleure solution consiste donc à effectuer vous-même la recherche dans une requête distincte.

  1. Effectuez votre aggregate requête.
  2. Tirez les valeurs "localField" des résultats de votre requête dans un tableau, éventuellement en utilisant Array#map .
  3. Effectuer une find requête sur la collection "from", en utilisant une requête telle que {foreignField: {$in: localFieldArray}}
  4. Fusionnez vos résultats dans le format dont vous avez besoin.

Ne laissez pas le $lookup limitation vous empêche de partitionner les collections qui en ont besoin pour l'évolutivité, effectuez simplement la fonction de recherche vous-même.