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

Bardziej elegancki sposób obsługi wartości filtrowania w aplikacji Angular

Aby to zadziałało, wystarczy dodać trochę więcej logiki warunkowej, gdy wartość jest przekazywana przez { $in: value } . Ponieważ błędy, które się pojawiały, były spowodowane problemami z formatowaniem w { $in: value } , kluczem było upewnienie się, że jest to wyzwalane tylko wtedy, gdy istnieje wartość do przekazania.

Tak więc, w końcu, aby to zadziałało - bez konieczności przekazywania tablicy wszystkich możliwych wartości, co nie było eleganckim ani wydajnym rozwiązaniem - zmieniłem to:

private processType(name: string, value: any, body)
{
    if (this.body[name] && !value) {
            delete this.body[name];
        } else {
            this.body[name] = { $in: value };
        }
}

... do tego:

private processType(name: string, value: any, body)
{
    if (this.body[name] && !value || this.body[name] && value.length < 1) {
            delete this.body[name];
        } else if (value) {
            this.body[name] = { $in: value };
        }
}

Zasadniczo zapewnia to, że tablica zawierająca co najmniej jedną wartość jest dostępna po wyzwoleniu { $in:wartość }.

Jedyną inną niezbędną zmianą była zmiana dotycząca tego, co jest emitowane, gdy użytkownik odznaczył wszystkie wartości. Załatwiłem to w ten sposób:

private sendLangSelections(languageFilterOptions) {
    const origLangArray = ['English', 'Spanish', 'Mandarin'];
    if (languageFilterOptions)
        {
            let selectionsArray = this.languageFilterOptions.selection;
            let values = selectionsArray.map((a) => { return a.value; });
            if (values && values.length > 0)
                {
                    this.sendLanguage.emit(values);
                }
            else if (values && values.length < 1)
                {
                    this.sendLanguage.emit(this.obj = undefined);
                }
        }
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mangusta, wyciągnij z poddokumentu

  2. Jak utworzyć plik konfiguracyjny dla MongoDB

  3. Jak zaktualizować osadzony dokument do zagnieżdżonej tablicy?

  4. Używanie agregacji do sortowania w złożonych warunkach warunkowych w Mongodb

  5. mongodb część obiektu najprawdopodobniej będzie wyjątkowa