Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 使用正则表达式的Rmongodb无法按预期工作_Regex_R_Mongodb_Rmongodb - Fatal编程技术网

Regex 使用正则表达式的Rmongodb无法按预期工作

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

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

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)
注意:我尝试了json字符串,但无法使用,因为我需要将变量作为输入正则表达式传递,即我使用
paste0(组件[1],“*$”
创建正则表达式,其中组件列表包含诸如空气过滤器等术语

你能提供一些指导吗


谢谢

以下是我尝试过的,它正在发挥作用

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)
}
库(rmongodb)

mongo你能发布一些示例文档吗?我要的是你收藏的文档。对不起!集合的“我的关键字”字段包含诸如空气滤清器、座舱空气滤清器、二次空气滤清器等术语。查询有多个匹配项。{“_id”:ObjectId(“55dcdc72473fdf86c0020d96”),“_类”:“关键字”:“空气滤清器”,“同义词”:[]}{“_id”:ObjectId(“55DC72473FDF86C0020E0F”),“_类”:”“关键字”:“座舱空气过滤器”,“同义词”:[]}{”_id:ObjectId(“55DC79473FDF86C002143B”),“_类”:”“关键字”:“二次空气过滤器”,“同义词”:[]}感谢您的输入。但是我拒绝了json的使用,因为我需要在列表中以变量的形式传递正则表达式。例如:我认为我们不能做{“$regex”:paste0(组件[1],“*$”)对于jsonStr。您能确认一下吗?您能更具体地提到您的输入吗?因为我们不知道什么是
组件
。组件列表中包含空气过滤器之类的术语,我需要通过应用REG解释。请编辑您的问题并提及所有输入。请提供
组件的列表值
相似部件
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)
}