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

MongoDb:agregacja $lookup z filtrowaniem dokumentów zagranicznych

Możesz użyć $filter Operator agregacji tablic na pets tablica, która jest tworzona przez Twój $lookup scena.

Aby wyprowadzić zwierzęta starsze niż 1 rok, użyj

db.users.aggregate([ 
{ 
  $lookup: 
  { 
    from: "pets", 
    localField: "id", 
    foreignField: "owner", 
    as: "pets" 
  } 
}, 
{
  $project: 
  {
    name: 1,
    pets: 
    { 
      $filter: 
      { 
        input: "$pets", 
        as: "pet", 
        cond: { $gte: [ "$$pet.age", 1 ] } 
      } 
    } 
  } 
} 
]);

Aby wyświetlić najstarsze zwierzaki, po prostu zamień cond pole $filter operator w poprzednim potoku agregacji z

cond: { $eq: [ "$$pet.age", { $max: "$pets.age" } ] }



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Łączenie z zestawem replik MongoDB za pomocą rmongodb

  2. Konfiguracja indeksu MongoDB 2.6, zapytanie za pomocą $or, $in, z limitem i sortowaniem

  3. $in wymaga tablicy jako drugiego argumentu, znaleziono:brak

  4. Dlaczego $in jest znacznie szybszy niż $all?

  5. Utwórz kolekcję w MongoDB