Fork of mongo-c-driver to work on windows compatiblity
C C++
Pull request Compare This branch is 1 commit ahead, 631 commits behind 10gen:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


This is a very basic MongoDB c driver. This is an alpha release, please email if you run into issues or have API suggestions.

The goal is to be super strict for ultimate portability, no dependencies, and very embeddable anywhere.

You will need JSON-C ( to compile the unit tests, but it is not required for the main libraries.

Building with scons:
scons # this will produce libbson.a and libmongoc.a
scons --c99 # this will use c99 mode in gcc (recommended)
scons test # this will compile and run the unit tests (optional)
scons test --test-server= # use remote server for tests

Building with gcc:
gcc --std=c99 -Isrc src/*.c YOUR_APP.c # No -Ddefines are needed in c99 mode on little endien

Building with MSVC:

#define options (you must use the same flags to compile all apps and libs):
MONGO_BIG_ENDIAN             This must be defined if on a big endian architecture

one of these (defaults to unsigned char if neither is defined)
MONGO_HAVE_BOOL              Define this if your compiler has a plain 'bool' type
MONGO_HAVE_STDBOOL           Define this if you must include <stdbool.h> to get 'bool'

one of these (required if not using c99):
MONGO_HAVE_STDINT            Define this if you have <stdint.h> for int64_t
MONGO_HAVE_UNISTD            Define this if you have <unistd.h> for int64_t
MONGO_USE__INT64             Define this if '__int64' is your compiler's 64bit type (MSVC)
MONGO_USE_LONG_LONG_INT      Define this if 'long long int' is your compiler's 64bit type

Error Handling:
I'm using an exception system based on cexcept. If you would like to gracefully
handle errors, take a look at src/mongo_except.h. It is currently only used for
network failures, but more errors will be used in the future.

building on windows
more documentation
checking for $err in query results
query helper for sort and hint
explain and profiler helpers
safe-mode modifications (maybe)
cached ensure_index (maybe)