Ich habe Probleme, Informationen zwischen zwei Sammlungen abzurufen. Die erste Kollektion speichert Mitarbeiter Informationen:MongoDB Abfrage IN Array von Objekt
{
"_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",
}
die zweite die Abteilungen Information
{
"_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"
}
]
}
Ich versuche zu finden: Alle Abteilungen für einen bestimmten Mitarbeiter.
Ich habe versucht, so etwas wie:
employees = db.employees.find({_id:ObjectId("some_id")});
db.departments.find({_id:{$in:...}});
Aber ich weiß nicht, wie ich $ in department_id aller Abteilungen von var Mitarbeiter erklären kann.
Ok .. Ja, ich weiß über Design-Problem. Aber ich habe nicht alle Informationen über Abteilungen geteilt. In der Tat hat jede Abteilung eine Liste von Managern (siehe: Post-Update), warum ich Abteilungen und Mitarbeiter aufgeteilt habe. Und Sie sind wirklich über Schleife vorbei, aber ich wollte wissen, ob es möglich ist, dies mit einer einfachen Abfrage zu tun – Kakawait
Ich habe meine Antwort aktualisiert, damit dies funktioniert, müssen Sie Ihr Schema neu gestalten. – Derick