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

Filtruj według kraju i swobodnego wyszukiwania tekstu mongodb za pomocą mongoose

Przede wszystkim mam nadzieję, że wiesz, że aby wykonać $text zapytań opartych na indeks oparty na tekście na tym konkretnym polu.

Po drugie, wydajesz się mylić oddzwonienia i obietnice -

Jak widzę twoje query() funkcja zwraca obietnicę nadal, gdy wywołujesz query() funkcja, której oczekujesz wywołania zwrotnego. Obietnice są natychmiast zwracane, a następnie musisz je rozwiązać.

Twój kod powinien wyglądać tak -

dbHelper.query(mongoose.model('events'), {$text: {$search: "Ade"},'place.location.country': "Australia"})
.then(function(result)){
    // you have your data here
}
.catch(function(err)){
    // an error occured
}

Przeczytaj więcej o obietnicach tutaj .

Kolejny drobny błąd, który mogę zauważyć, to query() metoda. Instrukcja if statement nie używa nawiasów klamrowych i w rezultacie tylko następną instrukcję po instrukcji if statement zostanie wykonany pod if statement klauzula. Druga instrukcja po if statement będzie zawsze wykonywany -

Tak więc,

if(error)
    console.log(error);
// always executed
reject(error);
resolve(data);

powinno być -

if(error){
    console.log(error);
    reject(error);
}
resolve(data);

Nadal nie jestem pewien, czy to wszystko sprawi, że twój kod będzie działał, ponieważ nie widzę tutaj całego obrazu. I IMHO zaleca, abyś zainwestował trochę więcej czasu w podstawy javascript i MongoDB. Pomoże Ci zaoszczędzić dużo czasu. I o to chodzi oficjalne dokumenty MongoDB są naprawdę dobre.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Suma agregacji w Spring Data MongoDB

  2. Szkolenie nie powiodło się - AWS Machine Learning

  3. Dlaczego oprogramowanie pośredniczące nodejs-mongodb ma inną składnię niż powłoka mongo?

  4. Jak mogę połączyć wiele kolekcji w jedną kolekcję za pomocą $lookup mongodb lub nodejs mongodb?

  5. Aplikacja Multi-Tenant Rails 3 na Heroku przy użyciu PostgreSQL