我在使用正则表达式从R(使用rmongodb包)查询mongodb时遇到了一个问题。以下是我的代码:使用正则表达式的Rmongodb不能按预期工作
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