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

Zignorować niezdefiniowane wartości, które są przekazywane w parametrze obiektu zapytania dla funkcji Znajdź Mongoose?

Musisz filtrować swoje res.query najpierw obiekt z niezdefiniowanych/pustych wartości, a następnie przekaż go do find funkcjonować. Jeśli masz tylko kilka właściwości, możesz użyć if oświadczenie:

const query = req.query;
const conditions = {};

if (query.what) {
  conditions.what = query.what;
}

if (query.where) {
  conditions.where = query.where;
}

....


Sound.find(conditions, function () {});

Lub jeśli istnieje wiele właściwości, które możesz nad nimi iterować:

const query = req.query;
const conditions = Object.keys(query)
  .reduce((result, key) => {
    if (query[key]) {
      result[key] = query[key];
    }
    return result;
}, {}); 

Sound.find(conditions, function () {});

Nie radziłbym również usuwać właściwości z rzeczywistego res.query obiekt - delete res.query.what - ponieważ nie będziesz mógł go używać w innym oprogramowaniu pośredniczącym, jeśli chcesz.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongo DB:Jak skopiować dokument z jednej kolekcji i dodać go jako pole do powiązanego dokumentu z innej kolekcji?

  2. Jak wybrać jedno pole dla wszystkich dokumentów w kolekcji MongoDB?

  3. Rzutowanie na numer nie powiodło się dla wartości NaN (numer typu) na ścieżce w polu wyliczanym Mongoose

  4. Jak poprawnie połączyć się z klastrem Atlas M0 (Free Tier) za pomocą sterownika Java?

  5. Jak podłączyć lokalną bazę danych Mongo do dockera