MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

По-елегантен начин за справяне с филтриращите стойности в приложението Angular

За да работи това, е въпрос на добавяне на по-условна логика към това, когато дадена стойност се предава чрез { $in: value } . Тъй като грешките, които изскачаха, бяха поради проблеми с форматирането с { $in: value } , ключът беше да се уверите, че това се задейства само когато има стойност за предаване.

И така, в крайна сметка, за да накарам това да работи - без да се налага да предавам масив от всички възможни стойности, което не беше елегантно, нито ефективно решение - промених това:

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

... към това:

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 };
        }
}

Това, което прави, е основно да гарантира, че масив от поне една стойност е наличен, когато се задейства {$in:value}.

Единствената друга необходима промяна беше тази, включваща какво се излъчва, когато потребителят е премахнал всички стойности. Справих се с това по този начин:

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. Как да съпоставя точна фраза с динамичен низ в текстов индекс Mongodb?

  2. Rails + MongoMapper + EmbeddedDocument помощ за формуляра

  3. Добавете валидатор към колекция Mongodb с pymongo

  4. MongoDB извлича само съвпадащи поддокументи от документ с c#

  5. Най-популярните NoSQL бази данни, поддържани от ClusterControl