MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Szukasz sposobu na zwrot dokumentów z innej kolekcji na podstawie zestawu z innej MongoDB

Podobnie jak "joins" w sql, w Mongo musisz użyć "lookup".

Aby użyć wyszukiwania, musisz użyć zapytania „zagregowanego”,

Więc zapytanie, którego potrzebujesz, to:

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);
})

Co więc robi to zapytanie,

zobacz wiersz "$lookup" ---> z kolekcji "users", używa pola "sensors" (pole lokalne do Twojej kolekcji użytkownika, takie jak podstawowy identyfikator w sql) i pobiera informacje z kolekcji "sensor" pasującej do sensorId (obcy w kolekcji czujników) i zapisz wynik w polu „sensorDetails”.

możesz mieć dostęp do sensorDetails za pomocą "userData[0].sensorDetails".sensorDetails będzie tablicą.

Sprawdź oficjalne dokumenty na temat lookup Przeczytaj także o rozwijaniu



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Agregacja MongoDB $podziel pola obliczane

  2. czy procedura istnieje w mongodb?

  3. W jaki sposób IAsyncCursor jest używany do iteracji ze sterownikiem c# mongodb?

  4. Połącz ciąg i liczbę w SQL

  5. Dlaczego ten db.eval -> array.push miałby być wykonywany dwukrotnie dla niektórych rekordów?