Page History: rmongodb - R Driver for MongoDB
Compare Page Revisions
Page Revision: 2012/01/26 05:56
rmongodb is a client driver for the
R language to
MongoDB. The development of this driver was sponsored by
10Gen, Inc..
The full reference manual is available here:
rmongodb.pdfThe source code for this driver is now publicly available at
GitHub here:
https://github.com/gerald-lindsly/rmongodb.
rmongodb is now on the
Comprehensive R Archive Network (CRAN) for pre-built distribution.
FAQ
How do I query a database and put the result in a data frame?
count <- mongo.count(mongo, ns, query)
cursor <- mongo.find(mongo, query)
name <- vector("character", count)
age <- vector("numeric", count)
i <- 1
while (mongo.cursor.next(cursor)) {
b <- mongo.cursor.value(cursor)
name[i] <- mongo.bson.value(b, "name")
age[i] <- mongo.bson.value(b, "age")
i <- i + 1
}
res <- as.data.frame(list(name=name, age=age))
Contact Info
Please contact me at
gerald@cnub.org if you have comments, issues or bug reports concerning the driver.
I also wrote a related MongoDB driver for Matlab. See
MongoMatlabDriver.
News
2011-09-08: Append and value functions now support the
dim attribute. This involved some tricky code that I pondered on for a while. Previously, the only way to handle the dim attribute was through
mongo.bson.buffer.append.object()
. Now, multidimensional arrays are handled in a 'natural' way. This allows import from foreign applications (non-R) and export to them as well. Also, the output is not cluttered with the 'R_OBJ' flag.
2011-09-05: I added
mongo.bson.buffer.append.object()
last night. This allows higher level R objects to be stored in the database without loss of attributes (such as their class). The other 'append' functions lose most attributes as they are primarily targeted towards storing single values (or vectors of them). These do support the 'names' attribute as this fitted in naturally with
BSON.
mongo.bson.buffer.append.object()
puts a wrapper around an object's lower level value which can be detected by
mongo.bson.value()
,
mongo.bson.iterator.value
and
mongo.bson.to.list()
. See the docs for more information:
rmongodb.pdf.