MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Filtra la matrice di documenti secondari restituendo comunque i dati principali se vuoti

In questo caso potresti usare $redact invece di $match, come questo

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

Abbiamo bisogno della prima condizione per saltare i documenti di primo livello, la seconda condizione per saltare il secondo livello e la terza per potare i veicoli. Non è necessario $rilassarsi in questo caso!

Un'altra cosa:$redact disponibile solo in 2.6