Learn R Programming

rmongodb

This is an R (www.r-project.org) extension supporting access to MongoDB (www.mongodb.org) using the mongodb-c-driver (http://docs.mongodb.org/ecosystem/drivers/c/).

The latest stable version is available on CRAN: http://cran.r-project.org/package=rmongodb

Thanks to Gerald Lindsly and MongoDB, Inc. (formerly 10gen) for the initial work.

In October 2013, MongoSoup and Markus Schmidberger have overtaken the development and maintenance of the R package.

Since October 2014 package is maintained by Dmitriy Selivanov. Please feel free to send us issues or pull requests via github: https://github.com/mongosoup/rmongodb

Furthermore, I'm happy to get your feedback personally via email: selivanov.dmitriy (at) gmail.com.

Usage

Once you have installed the package, it may be loaded from within R like any other package:

library("rmongodb")

# connect to your local mongodb
mongo <- mongo.create()

# create query object 
query <- mongo.bson.from.JSON('{"age": 27}')

# Find the first 100 records
#    in collection people of database test where age == 27
cursor <- mongo.find(mongo, "test.people", query, limit=100L)
# Step though the matching records and display them
while (mongo.cursor.next(cursor))
    print(mongo.cursor.value(cursor))
mongo.cursor.destroy(cursor)

res <- mongo.find.batch(mongo, "test.people", query, limit=100L)

mongo.disconnect(mongo)
mongo.destroy(mongo)

There is also one demo available:

library("rmongodb")
demo(teachers_aid)

Supported Functionality by rmongodb

  • Connecting and disconnecting to MongoDB
  • Querying, inserting and updating to MongoDB including with JSON and BSON
  • Creating and handling BSON objects
  • Dropping collections and databases on MongoDB
  • Creating indices on MongoDB collections
  • Error handling
  • Executing commands on MongoDB
  • Adding, removing, handling files on a "Grid File System" (GridFS) on a

MongoDB server

Good ressources to Get Started with rmongodb

Good ressources to Install and Get Started with MongoDB

Good ressources for working with JSON-Data in R:

Development

To install the development version of rmongodb, it's easiest to use the devtools package:

# install.packages("devtools")
library(devtools)
install_github("mongosoup/rmongodb")

We advice using RStudio (www.rstudio.org) for the package development. The RStudio .Rproj file is included in the repository.

Usefull links

Versioning

We use a three step version number system, e.g. v1.2.1:

  • first: major changes as new C libraries
  • second: for each new stable CRAN release
  • third: for each new github version ready for testing

General Development Rules

  • we use roxygen2
  • we write RUnit tests for all new functionality in tests/test_XXX.R
  • for bigger changes we use branches
  • run valgrid to check for memory leaks R -d "valgrind --tool=memcheck --leak-check=full" --vanilla < test_XXX.R > log.txt 2>&1
  • CRAN submission:
  • http://cran.r-project.org/submit.html
  • create Package tar.gz via RStudio "Build Source Package"
  • run R CRAN checks via: R CMD check --as-cran package.tar.gz
  • run R CRAN checks without running mongodb installation
  • create a tag / release on github for every CRAN submission

Copy Link

Version

Install

install.packages('rmongodb')

Monthly Downloads

109

Version

1.8.0

License

Apache License 2.0

Issues

Pull Requests

Stars

Forks

Last Published

November 12th, 2014

Functions in rmongodb (1.8.0)

mongo.bson.buffer.append.code.w.scope

Append a code field with a scope onto a mongo.bson.buffer
mongo.bson

The mongo.bson class
mongo.bson.buffer.append.bool

Append a boolean field onto a mongo.bson.buffer
mongo.bson.from.df

Convert a data.frame to a mongo.bson object
mongo.binary.uuid

BSON binary data subtype constant for uuid data
mongo.bson.buffer.append.oid

Append a OID into a mongo.bson.buffer
mongo.binary.binary

BSON binary data subtype constant for standard binary data
mongo.add.user

Add a user and password
mongo.bson.buffer.finish.object

Finish a subobject or array within a mongo.bson.buffer
mongo.binary.md5

BSON binary data subtype constant for md5 data
mongo.bson.to.Robject

Convert a mongo.bson object to an R object.
mongo.bson.buffer.append.int

Append an integer field onto a mongo.bson.buffer
mongo.find

Find records in a collection
mongo.binary.old

BSON binary data subtype constant for old format data
mongo.aggregation

Aggregation pipeline
mongo.bson.string

BSON data type constant for a string value
mongo.bson.null

BSON data type constant for a null value
mongo.bson.binary

BSON data type constant for a binary data value
mongo.bson.buffer.append.object

Append an R object onto a mongo.bson.buffer
mongo.bson.code.w.scope

BSON data type constant for a code with scope value
mongo.bson.eoo

BSON data type constant for 'End Of Object'
mongo.bson.iterator.key

Return the key (name) of the field pointed to by an iterator
mongo.bson.buffer.append.code

Append a code field onto a mongo.bson.buffer
mongo.bson.object

BSON data type constant for a subobject value
mongo.get.database.collections

Get a list of collections in a database
mongo.binary.user

BSON binary data subtype constant for user data
mongo.bson.buffer.append.undefined

Append a undefined field onto a mongo.bson.buffer
mongo.bson.buffer.append.time

Append a time value into a mongo.bson.buffer
mongo.bson.long

BSON data type constant for a long value
mongo.get.server.err.string

Retrieve an server error code from a mongo connection object
mongo.bson.buffer.append.bson

Append a mongo.bson object into a mongo.bson.buffer
mongo.find.no.cursor.timeout

mongo.find flag constant - no cursor timeout
mongo.bson.buffer.size

Get the size of a mongo.bson.buffer object
mongo.bson.buffer.append.raw

Append a raw (binary) field onto a mongo.bson.buffer
mongo.bson.empty

Create an empty mongo.bson object
mongo.bson.iterator.create

Create a mongo.bson.iterator object
mongo.find.await.data

mongo.find flag constant - await data
mongo.bson.buffer.append.list

Append a list onto a mongo.bson.buffer
mongo.bson.iterator.type

Get the type of data pointed to by an iterator
mongo.bson.symbol

BSON data type constant for a symbol value
mongo.bson.double

BSON data type constant for a double value
mongo.binary.function

BSON binary data subtype constant for function data
mongo.bson.buffer.append.double

Append a double field onto a mongo.bson.buffer
mongo.bson.from.buffer

Convert a mongo.bson.buffer object to a mongo.bson object
mongo.get.databases

Get a list of databases from a MongoDB server
mongo.gridfile.get.metadata

Get the metadata of a mongo.gridfile
mongo.cursor.to.list

Convert Mongo Cursor Object to List so that each element of resulting list represents document in source collection.
mongo.cursor.value

Fetch the current value of a cursor
mongo.find.oplog.replay

mongo.find flag constant - oplog replay
mongo.cursor.to.data.frame

Convert Mongo Cursor Object to Data.Frame
mongo.bson.from.JSON

Convert JSON to BSON Object
mongo.bson.value

Return the value of a mongo.bson field
mongo.bson.buffer.append.string

Append a string field onto a mongo.bson.buffer
mongo.authenticate

Autherticate a user and password
mongo.bson.buffer.append.timestamp

Append a timestamp value into a mongo.bson.buffer
mongo.bson.buffer.append.long

Append a long valued field onto a mongo.bson.buffer
mongo.bson.buffer.append.null

Append a double field onto a mongo.bson.buffer
mongo.bson.buffer.start.object

Start a subobject within a mongo.bson.buffer
mongo.bson.array

BSON data type constant for an array
mongo.drop.database

Drop a database from a MongoDB server
mongo.bson.buffer.append.element

Append a mongo.bson.iterator's element into a mongo.bson.buffer
mongo.bson.iterator.next

Advance an iterator to the first or next field
mongo.code.w.scope

The mongo.code.w.scope class
mongo.bson.size

Get the size of a mongo.bson object
mongo.code.create

Create a mongo.code object
mongo.bson.buffer.append.symbol

Append a symbol field onto a mongo.bson.buffer
mongo.gridfs.find

Find a GridFS file
mongo.bson.int

BSON data type constant for a integer value
mongo.index.sparse

mongo.index.create flag constant - sparse
mongo.code.w.scope.create

Create a mongo.code.w.scope object
mongo.bson.dbref

BSON data type constant for a dbref value
mongo.gridfile.get.content.type

Get the content type of a mongo.gridfile
as.character.mongo.oid

Convert a mongo.oid object to a string
mongo.drop

Drop a collection from a MongoDB server
mongo.bson.buffer.append.complex

Append a double field onto a mongo.bson.buffer
mongo.get.prev.err

Retrieve an server error code from a mongo connection object
mongo.bson.timestamp

BSON data type constant for a timestamp value
mongo.gridfile

The mongo.gridfile class
mongo.gridfile.writer

The mongo.gridfile.writer class
mongo.count

Count records in a collection
mongo.bson.buffer.create

Create an new mongo.bson.buffer object
mongo.gridfile.read

Read raw data from a mongo.gridfile
mongo.gridfile.writer.finish

Finish writing to a buffered GridFS file
mongo.bson.buffer.append

Append a name/value pair into a mongo.bson.buffer
mongo.bson.code

BSON data type constant for a code value
mongo.gridfile.writer.create

Create a mongo.gridfile.writer object
mongo.gridfile.pipe

Pipe a mongo.gridfile to an R connection
mongo.bson.date

BSON data type constant for a date value
mongo.gridfile.destroy

Destroy a mongo.gridfile object
mongo.bson.iterator.value

Return the value of the field pointed to by an iterator
mongo.gridfile.get.chunk.count

Get the chunk count of a mongo.gridfile
mongo.bson.buffer.append.regex

Append a timestamp value into a mongo.bson.buffer
print.mongo.bson

Display a mongo.bson object
mongo.bson.oid

BSON data type constant for a oid value
mongo.bson.destroy

Destroy a mongo.bson object
mongo.set.timeout

Set the timeout value on a mongo connection
mongo.code

The mongo.code class
mongo.rename

Rename a collection on a MongoDB server
mongo.bson.to.list

Convert a mongo.bson object to an R list object.
mongo.bson.buffer.start.array

Start an array within a mongo.bson.buffer
mongo.bson.print

Display a mongo.bson object
mongo.bson.bool

BSON data type constant for a bool value
mongo.bson.from.list

Convert a list to a mongo.bson object
mongo.find.exhaust

mongo.find flag constant - exhaust
mongo.create

Create an object of class "mongo"
mongo.get.err

Retrieve an connection error code from a mongo object
mongo.gridfile.get.chunk

Get a chunk of a mongo.gridfile
mongo.bson.iterator

The mongo.bson.iterator class
mongo.oid.time

Get an Object ID's time
mongo.destroy

Destroy a MongoDB connection
mongo.gridfile.get.length

Get the length of a mongo.gridfile
mongo.find.partial.results

mongo.find flag constant - partial results
mongo.bson.undefined

BSON data type constant for a undefined value
mongo.get.hosts

Get a lists of hosts & ports as reported by a replica set master upon connection creation.
mongo.symbol

The mongo.symbol class
mongo.index.create

Add an index to a collection
mongo.bson.find

Find a field within a mongo.bson object by name
mongo.oid.create

Create a mongo.oid object
mongo.index.unique

mongo.index.create flag constant - unique keys
mongo.get.primary

Get the host & port of the server to which a mongo object is connected.
mongo.oid.print

Display a mongo.oid object
mongo.bson.regex

BSON data type constant for a regex value
mongo.gridfs.destroy

Destroy a mongo.gridfs object
mongo.disconnect

Disconnect from a MongoDB server
mongo.get.server.err

Retrieve an server error code from a mongo connection object
mongo.index.background

mongo.index.create flag constant - background
mongo.gridfs.remove.file

Remove a file from a GridFS on a MongoDB server
mongo.simple.command

Issue a simple.command to a database on MongoDB server
mongo.find.cursor.tailable

mongo.find flag constant - cursor tailable
mongo.command

Issue a command to a database on MongoDB server
mongo.symbol.create

Create a mongo.symbol object
mongo.cursor.next

Advance a cursor to the next record
mongo.gridfs.store

Store raw data as a file in a GridFS
mongo.gridfile.writer.write

Write raw data to a buffered GridFS file
mongo.cursor

The mongo.cursor class
mongo.find.one

Find one record in a collection
mongo.insert.batch

Add multiple records to a collection
mongo.update.multi

mongo.update() flag constant for updating multiple records
mongo.index.drop.dups

mongo.index.create flag constant - drop duplicate keys
mongo.gridfile.get.descriptor

Get the descriptor of a mongo.gridfile
mongo.get.socket

Get the socket assigned to a mongo object by mongo.create().
mongo.timestamp

The mongo.timestamp class
mongo.reconnect

Reconnect to a MongoDB server
mongo.is.master

Determine if a mongo connection object is connected to a master
mongo.gridfs

The mongo.gridfs class
mongo.find.all

Find records in a collection and returns one R data frame object
mongo.gridfs.store.file

Store a file into a GridFS on a MongoDB server
mongo.gridfile.get.chunks

Get a cursor for a range of chunks in a mongo.gridfile
mongo.cursor.destroy

Release resources attached to a cursor
mongo.shorthand

Define shorthand for BSON and GridFS
mongo.find.slave.ok

mongo.find flag constant - slave ok
mongo.is.connected

Determine if a mongo object is connected to a MongoDB server
mongo.remove

Remove records from a collection
mongo.gridfile.seek

Seek to a position in a mongo.gridfile
mongo.gridfile.get.md5

Get the MD5 hash of a mongo.gridfile
mongo.get.timeout

Get the timeout value of a mongo connection
mongo.update.basic

mongo.update() flag constant for performing a basic update
print.mongo.oid

Display a mongo.oid object
mongo.gridfs.create

Create a mongo.gridfs object
mongo.undefined

The mongo.undefined class
zips

zips Dataset
mongo.reset.err

Retrieve an server error code from a mongo connection object
mongo.timestamp.create

Create a mongo.timestamp object
mongo.regex

The mongo.regex class
mongo.index.TTLcreate

Add a time to live (TTL) index to a collection
mongo.distinct

Get a vector of distinct values for keys in a collection
mongo.regex.create

Create a mongo.regex object
mongo.gridfile.get.filename

Get the filename of a mongo.gridfile
mongo.oid.to.string

Convert a mongo.oid object to a string
mongo.get.last.err

Retrieve an server error code from a mongo connection object
mongo

The mongo (database connection) class
mongo.gridfile.get.chunk.size

Get the chunk.size of a mongo.gridfile
mongo.bson.buffer

The mongo.bson.buffer class
mongo.update

Perform an update on a collection
mongo.oid

The mongo.oid class
mongo.insert

Add record to a collection
mongo.update.upsert

mongo.update() flag constant for an upsert
mongo.oid.from.string

Create a mongo.oid object ftom a string
mongo.gridfile.get.upload.date

Get the upload date of a mongo.gridfile
mongo.undefined.create

Create a mongo.undefined object