ofxMongo is an OpenFrameworks addons that allows you to connect with mongoDB server
This is a work in progress project, actually the addons allows you to connect to the mongoDB and insert the records. I will porting others function soon. Tested on OSX 10.13 and Linux Debian/Ubuntu created by Roberto Fazio Studio 2018
Create a new project with PG (Project Generator) and add ofxMongo. Open the project file in your IDE.
Inside your ofApp.h you will need to include:
#include "ofxMongo.h"
Declare the mongoclient object
ofxMongo mongoclient;
setup path
string host = "localhost";
string port = "27017";
string uri = "mongodb://" + host + ":" + port;
string db_name = "openFrameworksDB";
string collection_name = "of_collection";
Inside your ofApp.cpp
Make a connection to MongoDB with the default URI "mongodb://localhost:27017"
void ofApp::setup()
{
mongoclient.init(host, port);
}
mongoclient.insert
void ofApp::keyPressed(int key)
{
// insert
int rnd = ofRandom(0.0f, 100000.0f);
mongoclient.insert(db_name, collection_name, "myRandomField", ofToString(rnd));
}
Use the example-MongoDB_connection Xcode ( Work in progress )
Just follow the official MongoDB instruction
In addiction, if you want a GUI for MongoDB install MongoDB Compass for Mac, Linux, Win
LINUX : mongo-c , mongo-cxx MAC : mongo-c , mongo-cxx , Cyrus , Snappy WIN : not yet tested
mongo driver installation
http://mongoc.org/libmongoc/current/installing.html version: 1.12.0 built on Debian 4.9.110-1
according to "Build from tarball" instructions:
$ wget https://github.com/mongodb/mongo-c-driver/releases/download/1.12.0/mongo-c-driver-1.12.0.tar.gz
$ tar xzf mongo-c-driver-1.12.0.tar.gz
$ cd mongo-c-driver-1.12.0
$ mkdir cmake-build
$ cd cmake-build
build command for static libraries:
$ cmake -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DCMAKE_BUILD_TYPE=Release -DENABLE_STATIC=ON ..
$ make
$ sudo make install
https://mongodb.github.io/mongo-cxx-driver/mongocxx-v3/installation/
version: 3.2.x built on Debian 4.9.110-1
according to instructions:
$ git clone https://github.com/mongodb/mongo-cxx-driver.git \
--branch releases/stable --depth 1
$ cd mongo-cxx-driver/build
build command for static libraries:
$ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=OFF ..
$ sudo make EP_mnmlstc_core
$ make
$ sudo make install
/usr/local/include/* headers and /usr/local/lib/* static libraries are linked through the ADDON_PKG_CONFIG_LIBRARIES directive (addon_config.mk)
https://cyrusimap.org/sasl/sasl/installation.html#quick-install-guide
in my case I've installed cyrus-sasl-2.1.27-rc8
ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-sasl-2.1.27-rc8.tar.gz
cd (directory it was untarred into)
./configure
make
sudo make install
ln -s /usr/local/lib/sasl2 /usr/lib/sasl2
http://mongoc.org/libmongoc/current/installing.html
version: 1.12.0
according to "Building on Mac OS X" instructions, install XCode CLI
$ xcode-select --install
install Homebrew
install cmake:
$ brew install cmake
Download and build:
$ curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.12.0/mongo-c-driver-1.12.0.tar.gz
$ tar xzf mongo-c-driver-1.12.0.tar.gz
$ cd mongo-c-driver-1.12.0
$ mkdir cmake-build
$ cd cmake-build
build command for static libraries:
$ cmake -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DCMAKE_BUILD_TYPE=Release -DENABLE_STATIC=ON ..
$ make
$ sudo make install
https://mongodb.github.io/mongo-cxx-driver/mongocxx-v3/installation/
version: 3.2.x
according to instructions:
$ git clone https://github.com/mongodb/mongo-cxx-driver.git \
--branch releases/stable --depth 1
$ cd mongo-cxx-driver/build
build command for static libraries:
$ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=OFF ..
$ sudo make EP_mnmlstc_core
$ make
$ sudo make install
Snappy is a compression/decompression library https://github.com/google/snappy
$ git clone https://github.com/google/snappy.git
Build Snappy - You need CMake 3.4 or above to build
$ mkdir build cd build && cmake ../ && make
**mongo driver installation note **
The headers included in this addon were copied from:
/usr/local/include/bsoncxx/v_noabi/bsoncxx /usr/local/include/mongocxx/v_noabi/mongocxx /usr/local/include/libbson-1.0 /usr/local/include/libmongoc-1.0 /usr/local/opt/openssl/include/openssl
The static libraries included in this addon were copied from:
/usr/local/lib/ /usr/local/opt/openssl/lib/libcrypto.a /usr/local/opt/openssl/lib/libssl.a
If you need/want to build your own libraries, follow steps above then copy the files from OS into the addon.
Use projectGenerator adding ofxMongo. Once you have installed all the libs you have to add the frameworks to Xcode project
in Xcode under Build Phase -> Linked Frameworks and Libraries
Add Cyrus SASL : libsasl2.tbd
Add resolv : libresolv.9.tbd
Add Snappy : libsnappy.a
You should already see headers included in Build Settings>Header Search Paths as ../../../addons/ofxMongo/src ../../../addons/ofxMongo/include