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

Trouver l'intersection entre deux collections dans MongoDb

Copiez les deux collections dans une seule collection (incluez un champ discriminateur si nécessaire afin que vous puissiez dire quel type de document vous avez dans chaque instance).

Exécutez map-reduce sur cette collection

Dans Map, émettez le mot comme clé et une valeur, dites {instance:1, dict:0} ou {instance:0, dict:1} selon que le document mappé est une instance ou une entrée de dictionnaire. (Vous pouvez ajouter plus de champs ici dans les valeurs si nécessaire.)

Dans Réduire, accumulez les scores (comme d'habitude).

Effectuez maintenant une requête à la recherche de instance > 0 et dict > 0 et vous avez tous les mots qui sont dans les deux.