道歉,如果已经解决了这个问题。
在mongodb中,我有一个名为“main”的数据库集合。我可以从mongodb shell成功运行以下查询:
db.main.find( {
$or : [
{ $and : [ { "Var1Path": /.*20072.*/ }, { "Var2Path": /.*30033.*/ } ] },
{ $and : [ { "Var1Path": /.*30033.*/ }, { "Var2Path": /.*20072.*/ } ] },
]
} )
我试图用rmongodb在R中运行相同的查询。该查询结合了AND和OR。斜杠充当字符串匹配(例如,在名为Var1Path的字段中的任何位置找到字符串'20072')。这可以用Rmondodb在R中运行吗?如果是这样,应该怎么写?
答案 0 :(得分:0)
您是否尝试编写一些代码/读取rmongodb晕影?
你需要这样的东西:
and_1 = list("$and" = list( list("Var1Path" = list("$regex" = "20072" )),
list("Var2Path" = list("$regex" = "30033" )) ))
and_2 = list("$and" = list( list("Var1Path" = list("$regex" = "30033" )),
list("Var2Path" = list("$regex" = "20072" )) ))
mongo.find(mongo = mongo, ns = 'db_name.collection_name',
query = list("$or" = list(and_1, and_2)))
所有rmongodb用户应记住的一件事:mognodb对象与R对象之间的映射非常直接 - 未命名list
被解析为数组并命名为list
被解析为对象。