Я столкнулся с проблемой при запросе mongodb из R (с использованием пакета rmongodb) с использованием регулярных выражений. Ниже приведен мой код:Rmongodb с использованием regex не работает должным образом
buf <- mongo.bson.buffer.create()
regex <- mongo.regex.create("air filter*$", options="i")
mongo.bson.buffer.append.regex(buf, "keyword", regex)
query <- mongo.bson.from.buffer(buf)
res <- mongo.find.all(mongo,collection,query)
Но я получаю пустой результат в 'res' из БД. Однако, когда я проверяю регулярное выражение в БД напрямую, это дает мне действительные результаты. Когда я даю ключевое слово без регулярных выражений в вышеуказанном запросе (eg: "air filter")
, он отлично работает.
Я пробовал все возможные комбинации, но напрасно.
Ниже приведен пример docoments
[
{
"_id":ObjectId("55dcdc72473fdf86c0020d96"),
"_class":"",
"keyword":"air filter",
"synonyms":[
]
},
{
"_id":ObjectId("55dcdc72473fdf86c0020e0f"),
"_class":"",
"keyword":"cabin air filter",
"synonyms":[
]
},
{
"_id":ObjectId("55dcdc79473fdf86c002143b"),
"_class":"",
"keyword":"secondary air filter",
"synonyms":[
]
}
]
Примечания: Я попытался JSon строки, но не могу использовать, так как мне нужно передать переменный в качестве входного регулярного выражения, то есть. Я создаю регулярное выражение, используя paste0(component[1], "*$")
, где список компонентов содержит термины, такие как воздушный фильтр и т. Д.
Не могли бы вы предоставить некоторые рекомендации?
Спасибо!
Вы можете разместить некоторые примеры документов? – dikesh
http://www.inside-r.org/packages/cran/rmongodb/docs/mongo.regex –
Я прошу документы из вашей коллекции. – dikesh