Как запросить MongoDB из R?
Я хочу получить запрос MongoDB из R.
С оболочкой mongo
я бы запросил с помощью:
db.user.find({age:{$gt:21}})
Однако, в R-Mongo, я не нашел, как описать этот запрос.
Спасибо
Ответы
Ответ 1
Если вы используете rmongodb (есть аналогичный пакет Rmongo):
r <- mongo.find(mongo, "test.user", list(age=list('$gt'=21L)))
объект запроса BSON также может быть построен следующим образом:
buf <- mongo.bson.buffer.create()
mongo.bson.buffer.start.object(buf, "age")
mongo.bson.buffer.append(buf, "$gt", 21L)
mongo.bson.buffer.finish.object(buf)
query <- mongo.bson.from.buffer(buf)
r <- mongo.find("mongo", "test.user", query)
Ответ 2
Если вы используете RMongo, запрос будет выглядеть следующим образом:
dbGetQuery(mongo, "user","{'age':{'$gt': 21}}}")
Результат dbGetQuery() будет Data Frame.
Ответ 3
Я также написал легкий интерфейс для R пакета pymongo (официальный API для python)
https://github.com/RockScience/Rpymongo/blob/master/Rpymongo.r
Он имитирует как можно более близкие функции и аргументы на официальной странице API
http://api.mongodb.org/python/current/api/pymongo/collection.html