我在使用正則表達式從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