Daftar dan Belajar Sekarang!

Search pada mongodb

foto tonisuwendi
168 Kontribusi 36 Coto
6 bulan yang lalu
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));
	})
})

Tag: nodejs mongodb

✔ Forum ini sudah terjawab


Jawaban
foto tonisuwendi
168 Kontribusi 36 Coto
6 bulan yang lalu
bikin fungsi dulu seperti ini
function escapeRegex(text) {
    return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
};
update routenya jadi seperti ini
router.get('/add/search', (req, res) => {
	var key = req.query.key;
	const regex = new RegExp(escapeRegex(key), 'gi');
	Topic.find({ name: regex }, (err, topic) => {
		var data = [];
		for(i=0; i<topic.length; i++){
			data.push(topic[i].name);
		}
		res.end(JSON.stringify(data));
	})
})
answered icon
foto tonisuwendi
168 Kontribusi 36 Coto
6 bulan yang lalu
bikin fungsi dulu seperti ini
function escapeRegex(text) {
    return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
};
update routenya jadi seperti ini
router.get('/add/search', (req, res) => {
	var key = req.query.key;
	const regex = new RegExp(escapeRegex(key), 'gi');
	Topic.find({ name: regex }, (err, topic) => {
		var data = [];
		for(i=0; i<topic.length; i++){
			data.push(topic[i].name);
		}
		res.end(JSON.stringify(data));
	})
})


Login untuk diksusi di forum sekolah koding