Mongolite User Manual
Mongolite 2.0 (2018-08-09)
Chapter 1 Getting Started
This book provides a high level introduction to using MongoDB with the mongolite client in R.
1.1 Requirements (Linux / Mac)
Installation from source on Linux requires openssl
and Cyrus SASL
(not GNU sasl
). On Debian or Ubuntu use libssl-dev and libsasl2-dev:
sudo apt-get install -y libssl-dev libsasl2-dev
On Fedora, CentOS or RHEL use openssl-devel and cyrus-sasl-devel:
sudo yum install openssl-devel cyrus-sasl-devel
On OS-X sasl is included with the system so only openssl is needed.
brew install openssl
On Windows all dependencies are statically linked with mongolite; no separate installation is required. Elsewhere, mongolite will automatically find the system libraries when installed in default locations.
1.2 Install mongolite in R
Binary packages of mongolite for OS-X or Windows can be installed directly from CRAN:
Alternatively you can install the development version, which contains the latest features and bugs. This required compiling from source:
Note that Windows users need to install the Rtools toolchain in order to compile from source. This is not needed for the CRAN version above.
1.3 Run local mongod
Please refer to the official MongoDB install manual for instructions how to setup a local MongoDB server. To get started on MacOS, simply use:
brew install mongodb
The Homebrew package does not install any system services. To run the daemon in a console:
mongod
Use this for running examples as the mongolite package defaults to url = "mongodb://localhost"
.
1.4 Testing with SSL
To run a local mongod
with SSL support you need a SSL key and certificate. See the
Mongo Configure SSL manual page.
A generate a self signed cert for testing purposes:
cd /etc/ssl/
openssl req -newkey rsa:2048 -new -x509 -days 365 -nodes -out mongodb-cert.crt -keyout mongodb-cert.key
cat mongodb-cert.key mongodb-cert.crt > mongodb.pem
And then start the daemon with:
mongod --sslMode requireSSL --sslPEMKeyFile /etc/ssl/mongodb.pem
Because this certificate has not been signed with a CA, you need to set weak_cert_validation
in the client
to connect:
Obviously in production you need to get your cert signed by a CA instead.