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

mongoDB Dołącz na wielu polach

Obecnie mongodb $lookup porównuj tylko pojedyncze lokalne i zagraniczne klucz.

Ale jeśli chcesz wykonać zapytanie takie jak mysql left join z dwoma lub więcej polami, poniżej znajduje się rozwiązanie.

db.getCollection('LeftTable').aggregate([
{
    $lookup:
        {
          from: "RightTable",
          localField: "ID",
          foreignField: "ID",
          as: "RightTableData"
        }
},  
{$unwind :"$RightTableData" },
{ 
     $project: { 
            mid: { $cond: [ { $eq: [ '$MID', '$RightTableData.MID' ] }, 1, 0 ] } 
        } 
},
{$match : { mid : 1}}

])

Tutaj $MID to Lewy stół Pole MID.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak dynamicznie $ustawić pole poddokumentu w mongodb?

  2. Mongoose wyszukiwanie tekstowe z częściowym ciągiem

  3. Jak ponownie wykorzystać połączenie MongoDB w Go

  4. W mongodb znasz indeks elementu tablicy dopasowany do operatora $in?

  5. Błąd połączenia Mongolab