Запрос rmongodb, сочетающий AND, OR и совпадение строк
Извинения, если это уже было решено.
В mongodb у меня есть коллекция баз данных, которая называется "main". Я могу успешно выполнить следующий запрос из оболочки mongodb:
db.main.find( {
$or : [
{ $and : [ { "Var1Path": /.*20072.*/ }, { "Var2Path": /.*30033.*/ } ] },
{ $and : [ { "Var1Path": /.*30033.*/ }, { "Var2Path": /.*20072.*/ } ] },
]
} )
Я пытаюсь выполнить тот же запрос в R с rmongodb. Запрос объединяет AND и OR. Косые черты действуют как совпадение строк (например, найдите строку '20072' в любом месте поля с именем Var1Path). Можно ли это запустить в R с помощью rmondodb? Если так, как это должно быть написано?
1 ответ
Вы пытались написать код / прочитать виньетки 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
s анализируется как массивы и называется list
разбираются как объекты.