Mongo db mit Ergebnis der Abfrage in eine weitere Abfrage mit $in

Habe ich Folgendes Modell in mongo db:

User-Auflistung

{
_id:12345,
name:15,
age:"Joe",
}

Adressen-Sammlung

{
_id:7663,
userId:12345,
Street:"xyz",
number:"1235",
city:"New York",
state:"NY"
}

Nun möchte ich, um alle Adressen, die der Benutzer über dem Alter von 20 Jahren. Was ich dachte, war die Abfrage alle ids der Benutzer, die über 20 und mit dem Ergebnis dieser Abfrage verwenden Sie den $operator, um die Adressen finden.

Meine Frage ist, gibt es eine Möglichkeit, diesen in einer Abfrage? Gibt es einen besseren Weg, um diese Abfrage?
(obs: dies ist nur ein Beispiel, mit meinem problem, das ich nicht einbetten-Adressen in Benutzer)

  • Nein, MongoDB unterstützt keine joins. stackoverflow.com/questions/4067197/mongodb-and-joins
  • Ja, ich verstehe mongo db doesnt support verbindet. Was ich versuche zu verstehen, was ist der beste Weg, um mein problem zu lösen, wie oben aufgeführt. Zum Beispiel, gibt es eine Möglichkeit, ich kann, greifen alle die ids der Benutzer und legen Sie es in eine andere Abfrage?
  • "Der beste Weg" - Fragen sind in der Regel nicht eine gute Passform für, aber wenn Sie Ihre Frage aktualisieren Sie Ihren code mithilfe von $in dies zu tun, und Sie haben eine spezifische Frage zu einem problem mit der Herangehensweise, die besser funktioniert.
  • Die Frage ist wirklich, besser zu verstehen, mongo DB eigentlich. I dont haben ein real-life problem. Aber hier geht: ich weiß, ich kann mit der Liste der IDs von Benutzern, wie diese: db.users.find({age:{$gt:20}}) Und ich weiß, ich kann die Abfrage der Liste der Adressen wie diese: db.addresses.find({userId:{$in:[123,124,125,126]}}) ich weiß, ich kann Projekt der ersten Abfrage nur die Ids, das einzige was ich weiß ist, wenn ich das Ergebnis der ersten Abfrage in der zweiten. Wenn dies nicht möglich ist, gibt es eine andere Möglichkeit, die ich Abfragen kann, die zweite Sammlung mit einem Ergebnis von der ersten?
  • Sicher, diese Frage angezeigt: stackoverflow.com/q/22318719/1259510
Schreibe einen Kommentar