Dans MongoDB 3.2 a introduit l’opérateurlooklookup dans le cadre d’agrégation qui peut être utilisé pour effectuer une JOINTURE GAUCHE.
Veuillez noter que le fonctionnement des données MongoDB n’est pas comme
les données d’exploitation dans une base de données relationnelle, il est donc toujours conseillé d’avoir des données pertinentes pour être dans le même document
ceux qui utilisent souvent ensemble. Mais dans un certain cas, il est nécessaire de mettre deux collections différentes en raison de divers types
, pour éviter la duplication de données pour lesquelles nous avons de lourdes opérations de mise à jour, une utilisation dans plusieurs collections, etc.
JOIN est l’une des principales différences entre les bases de données SQL et NoSQL où, en tant qu’opérateur d’agrégation MongoDBlooklookup
, il est utile et puissant d’obtenir une JOINTURE pour deux collections, comme le faire dans le SGBDR.
Voyons plus loin:
Syntaxe:
En savoir plus sur le développement de la pile moyenne
Si vous venez du monde SGBDR, vous pouvez vous attendre à ce que ce lien de document séparé relie tous les champs de la collection locale
et étrangère, mais NON, tous les documents étrangers seront ajoutés en tant que tableau de document de collection locale. Étant donné que tous les documents étrangers
ajoutés à l’intérieur du document, vous pouvez utiliser uniquement si un nombre de documents relatifs étrangers est
limité et que la taille du document de résultat ne dépasse pas la limite de taille du document.
Ex:
Disons avoir deux collections « commandes » et « produit » avec les données suivantes.
Commandes:
Produits:
Maintenant, pour récupérer la commande avec les détails du produit, nous pouvons utiliser ci-dessous
Documents de résultats:
Normalement, l’ordre peut contenir plusieurs éléments, voyons comment vous pouvez effectuer une recherche $dans l’élément de tableau.
Modifions les collections de commandes pour qu’elles ressemblent à celles ci-dessous
Dans ce cas, les éléments de commande sont dans un tableau qui
requis pour se dérouler à l’aide de l’opérateurunwindunwind qui créera un document
séparé par élément et vous pourrez ensuite effectuer une recherche. Le script peut ressembler à ci-dessous.
Résultat:
Vous ne voudrez peut-être pas utiliser l’opérateur de recherche $ pour obtenir toutes les commandes d’un produit particulier dans d’autres commandes de jointure Word sur un produit
. En cas de produit le plus vendu, nous pourrions avoir des milliers de commandes et tous les ajouts dans un seul tableau peuvent entraîner un tableau de limite de taille de document
.