J'ai un problème pour récupérer des informations entre deux collections. Le premier magasin de collecte des informations sur les employés:requête MongoDB dans le tableau de l'objet
{
"_id" : ObjectId("4f9643967f8b9a3f0a00005a"),
"birth_date" : "1963-09-09",
"departments" : [
{
"departments_id" : ObjectId("4f9643957f8b9a3f0a000007"),
"from_date" : "1990-01-03",
"to_date" : "1990-01-15"
}
],
"first_name" : "Parviz",
"gender" : "M",
"hire_date" : "1990-01-03",
"last_name" : "Lortz",
}
le second les départements informations
{
"_id" : ObjectId("4f9643957f8b9a3f0a000004"),
"dept_name" : "Marketing",
"managers" : [
{
"employees_id" : ObjectId("4f96439b7f8b9a3f0a0186a9"),
"from_date" : "1985-01-01",
"to_date" : "1991-10-01"
},
{
"employees_id" : ObjectId("4f96439b7f8b9a3f0a0186aa"),
"from_date" : "1991-10-01",
"to_date" : "9999-01-01"
}
]
}
J'essaie de trouver: Tous les départements pour un employé donné.
J'ai essayé quelque chose comme:
employees = db.employees.find({_id:ObjectId("some_id")});
db.departments.find({_id:{$in:...}});
Mais je ne sais pas comment je peux expliquer $ en department_id de tous les services des employés var.
Ok .. Oui, je connais le problème de conception. Mais je n'ai pas partagé toutes les informations sur les départements. En effet, chaque département dispose d'une liste de managers (voir: mise à jour post), c'est pourquoi j'ai divisé les départements et les employés. Et vous avez la vérité sur la boucle, mais je voulais savoir s'il est possible de le faire avec une simple requête – Kakawait
J'ai mis à jour ma réponse, pour que cela fonctionne, vous devrez refaire votre schéma. – Derick