Wie kann ich nach dem Empfang von Ergebnissen nach einem anderen Dokument in einer anderen Sammlung suchen? Zum Beispiel habe ich eine große Sammlung namens Posts
und eine andere große Sammlung namens Users
.Wie kann ich ein anderes Dokument in einer anderen Sammlung nach dem Rückruf mit MongoDB abfragen?
Jeder Benutzer kann mehrere Beiträge erstellen, und andere Benutzer können diese Beiträge nur anzeigen, wenn sie mit ihnen befreundet sind oder ihnen folgen. Hier ist ein Beispiel eines User
:
{
_id: 1234,
name: "Jack",
username: 'jack',
friends: [9439, 4957, 2847]
followers: [9111, 5746, 6576],
following: [2121, 4382]
}
Und hier ist ein Beispiel für eine Post
:
{
_id: 2948,
text: "Hello World",
postedBy: 4957
}
Da das oben ist postedBy
Benutzer 4957
, und das obige Beispiel Benutzer, Jack
, ist befreundet mit Benutzer 4957
, sollte er diesen Beitrag zurück erhalten.
Ich bin nicht sicher, wie ich das angehen soll, weil ich neu mit MongoDB bin, obwohl ich annehme, dass eine Gesamtpipeline wahrscheinlich erforderlich sein würde. Ich vermute, es würde nach Posts suchen müssen, erhalten Sie die postedBy
, überprüfen Sie, ob es in den angemeldeten Benutzer friends
oder following
Array besteht, dann fahren Sie mit dem nächsten Beitrag. Ich werde nur ein Limit von 20 Posts pro Anfrage zurückgeben.
Ich kann eingebettete Dokumente nicht verwenden, da beide Modelle jederzeit geändert werden können.