Страницы

Поиск по вопросам

среда, 17 апреля 2019 г.

MongoDB, поиск по регулярному выражению

Добрый день! В документе есть поле size (строка) вида 134-140, 140-146 и тп. Делаю запрос
var s = "134"; var reg = new RegExp (`[${s}]`, "i"); collection.find({size:{$regex:reg}}).toArray(function(err, result){ console.log(result); });
По идее, должно вернуть все документы, где в поле size встречается цифры 134 (точнее строка). Но возвращает абсолютно все документы. Что я делаю не так?
П.С. после многочисленных тестов я определил, что возвращаются не все документы, а только те, где встречается хотя бы один символ из регулярного выражения. В данном случае 134. Так, будто квадратных скобок нет. Версия MongoDB-сервера 3.0, модуль версии 3.0


Ответ

var reg = /134/; collection.find({ size: { $regex: reg, $options: 'i' } })
UPD:
var s = "134"; var reg = ".*" + s ".*"; collection.find({ size: { $regex: reg, $options: 'i' } })

Комментариев нет:

Отправить комментарий