首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用regex的Rmongodb不像预期的那样工作。

使用regex的Rmongodb不像预期的那样工作。
EN

Stack Overflow用户
提问于 2016-02-04 05:41:02
回答 1查看 173关注 0票数 1

我在使用正则表达式从R查询mongodb (使用rmongodb包)时遇到了一个问题。下面是我的代码:

代码语言:javascript
复制
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”。但是,当我直接检查DB中的regex时,它会给出有效的结果。当我在上面的查询(eg: "air filter")中给出没有正则表达式的关键字名时,它工作得很好。

我试过所有可能的组合,但都没有成功。

下面是示例

代码语言:javascript
复制
[  
   {  
      "_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字符串,但不能使用,因为我需要将变量作为输入regex传递,也就是说,我使用paste0(component[1], "*$")创建regex,其中组件列表包含空气过滤器等术语。

请您提供一些指导好吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-04 07:25:13

这是我尝试过的,它正在起作用。

代码语言:javascript
复制
library(rmongodb)
mongo <- mongo.create(host = "localhost", db = "test")

components <- list("air filter", "engine oil")

for (component in components) {
    jsonStr <- paste0('{"keyword" : {"$regex" : "', component, '$"}}')
    mongo.bson.from.JSON(jsonStr)
    res <- mongo.find.all(mongo, "test.coll", mongo.bson.from.JSON(jsonStr))
    print(res)
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35193320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档