Search pada mongodb

mau nanya. saya membuat web menggunakan nodejs express mongodb. saya mau membuat fitur pencarian. kalo mau mengambil data seperti "select * from topic where name like "%$key%" gimana yah kalo di mongodb ? saya sudah coba menggunakan /key/ tapi kok tidak jalan yah ?

router.get('/add/search', (req, res) => {
	var key = req.query.key;
	Topic.find({ name: /key/ }, (err, topic) => {
		var data = [];
		for(i=0; i<topic.length; i++){
			data.push(topic[i].name);
		}
		res.end(JSON.stringify(data));
	})
})

avatar tonisuwendi
@tonisuwendi

169 Kontribusi 36 Poin

Dipost 4 tahun yang lalu

1 Jawaban:

Jawaban Terpilih

bikin fungsi dulu seperti ini <pre> function escapeRegex(text) { return text.replace(/[-[]{}()*+?.,\^$|#\s]/g, "\$&"); }; </pre> update routenya jadi seperti ini

<pre> router.get('/add/search', (req, res) =&gt; { var key = req.query.key; const regex = new RegExp(escapeRegex(key), 'gi'); Topic.find({ name: regex }, (err, topic) =&gt; { var data = []; for(i=0; i&lt;topic.length; i++){ data.push(topic[i].name); } res.end(JSON.stringify(data)); }) }) </pre>

avatar tonisuwendi
@tonisuwendi

169 Kontribusi 36 Poin

Dipost 4 tahun yang lalu

Login untuk ikut Jawaban