Pertama-tama saya harap Anda tahu bahwa untuk melakukan $text kueri berbasis Anda harus memiliki indeks berbasis teks pada bidang tertentu.
Kedua, Anda tampaknya membingungkan panggilan balik dan janji -
Seperti yang saya lihat query() fungsi masih mengembalikan janji saat Anda memanggil query() fungsi Anda mengharapkan panggilan balik. Janji dikembalikan segera kepada Anda dan kemudian Anda harus menyelesaikannya.
Kode Anda akan terlihat seperti ini -
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
}
Baca selengkapnya tentang Janji di sini .
Bug kecil lainnya yang dapat saya perhatikan ada di query() metode. if statement tidak menggunakan kurung kurawal dan akibatnya hanya pernyataan berikutnya setelah if statement akan dieksekusi di bawah if ayat. Pernyataan kedua setelah if akan selalu dieksekusi -
Jadi,
if(error)
console.log(error);
// always executed
reject(error);
resolve(data);
seharusnya -
if(error){
console.log(error);
reject(error);
}
resolve(data);
Saya masih tidak yakin semua ini dapat membuat kode Anda berfungsi karena saya tidak dapat melihat keseluruhan gambar di sini. Saya IMHO menyarankan Anda menginvestasikan lebih banyak waktu untuk membahas dasar-dasar javascript dan MongoDB. Akan membantu Anda menghemat banyak waktu. Dan dalam hal ini dokumen resmi MongoDB sangat bagus.