2 documents de fusion dans MongoDB
J'ai besoin d'obtenir des données à partir de deux documents provenant de différentes collections(1 champ commun en eux, pas de changement à la db) dans MongoDB. Je suis un newbie et s'il vous plaît m'aider avec ce
a = db.users.find(username:'[email protected]')
b = db.tasks.find(username:'[email protected]')
Comment puis-je obtenir une variable c qui a et b fusionné?
S'il vous plaît aider. Cela peut être trivial, mais de m'aider.
- Pouvez-vous préciser le mot "fusionné"? Il semble que vous voulez faire une jointure.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le
merge()
méthode dans le BFILS Api. Il vous donnerait b combiné avec un et stocker le résultat dans b. Vous pouvez copier b en c avant de le faire.Hey, si l'utilisateur est unique dans les deux collections de l'utilisation de la fonction findOne(), parce que find() retourne un curseur. Donc, pour parvenir à une fusion de deux objets dans la mongoDB console, vous pouvez utiliser le soufflet code:
J'espère que cela à résoudre votre problèmes.
Pour l'agrégation de données, vous êtes mieux de se familiariser avec MongoDB du map/reduce fonctionnalités.
Vous pouvez en lire plus à ce sujet ici.
Une fois que vous comprenez cela, il ne sera pas difficile d'écrire la Carte (récupérer les données) et de Réduire (données globales) de fonctions.
Vous aurez à faire dans votre application. Ne vous inquiétez pas avoir à exécuter deux requêtes, car il n'est pas nécessairement plus lente que l'exécution d'un complexe.
Je sais qu'il sera probablement pas votre cas, mais si vous utilisez clojure, une solution élégante consiste à utiliser le
merge-with
fonction après avoir récupéré les documents de mongo.