Đây là một câu hỏi cũ, nhưng bạn có thể sử dụng query.replace(/[-[\]{}()*+?.,\\/^$|#\s]/g, "\\$&");
Điều này đang hoạt động với aggregate
và matches
:
const order = user_input.replace(/[-[\]{}()*+?.,\\/^$|#\s]/g, "\\$&");
const regex = new RegExp(order, 'i');
const query = await this.databaseModel.aggregate([
{
$match: {
name : regex
}
// ....