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

Filtruj tablicę poddokumentów, nadal zwracając dane nadrzędne, jeśli są puste

W tym przypadku możesz użyć $redact zamiast $match, w ten sposób

db.collectionName.aggregate({
  $redact:{
    $cond:{ 
       if:{$and:[{$not:"$dealerName"},{$not:"$title"},{$eq:["$listed",false]}, 
       then: "$$PRUNE", 
       else: "$$DESCEND" 
    }
  }
})

Potrzebujemy pierwszego warunku do pominięcia dokumentów najwyższego poziomu, drugiego warunku do pominięcia drugiego poziomu i trzeciego do przycinania pojazdów. Nie trzeba się odprężać w tym przypadku!

Jeszcze jedno:$redact dostępne tylko w wersji 2.6




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Automatyczne usuwanie dokumentów z mongodb po określonym czasie

  2. Jaka jest różnica między tymi dwoma zapytaniami MongoDB?

  3. MongoDB jak sprawdzić istnienie

  4. Określ nazwę kolekcji MongoDb w czasie wykonywania w Spring boot

  5. Pośrednia modyfikacja przeciążonej nieruchomości Laravel MongoDB