Ähnlich wie bei „Joins“ in SQL müssen Sie in Mongo „Lookup“ verwenden.
Um die Suche zu verwenden, müssen Sie eine "aggregierte" Abfrage verwenden,
Also Abfrage, die Sie brauchen, ist,
db.collection('users').aggregate({$match:{ email: 'example_email' }},
{$unwind:{path:"$sensors"}},
{$lookup:{from:"sensor", localField: "sensors", foreignField:"sensorId", as:"sensorDetails"}},
(err, userData)=>{
console.log(userData);
})
Also, was macht diese Abfrage,
siehe "$lookup"-Zeile ---> aus der "users"-Sammlung, es verwendet das Feld "sensors" (lokales Feld zu Ihrer Benutzersammlung wie die primäre ID in SQL) und ruft Informationen aus der "sensor"-Sammlung ab, die mit der sensorId (fremd Feld in der Sensorsammlung) und speichern Sie das Ergebnis im Feld "sensorDetails".
Sie können mit "userData[0].sensorDetails" auf sensorDetails zugreifen. SensorDetails werden ein Array sein.
Überprüfen Sie die offiziellen Dokumente zu lookup Lesen Sie auch über unwind