Inserting a Document

The following guide will step you through the process of connecting to MongoDB and inserting a document.

The Basics

The following code example creates a new mongoc_client_t that we will use to communicate with MongoDB. The Connection String URI component is quite comprehensive.

Using our mongoc_client_t, we get a handle to a mongoc_collection_t which represents the remote collection. We create a new document, initialized with an _id and a field named hello and insert it into the test.test collection.

Lastly, we release all of our heap allocated structures.

<file>example3.c</file> Insert a document into the collection. #include #include int main (int argc, char *argv[]) { mongoc_client_t *client; mongoc_collection_t *collection; mongoc_cursor_t *cursor; bson_error_t error; bson_oid_t oid; bson_t *doc; mongoc_init (); client = mongoc_client_new ("mongodb://localhost:27017/"); collection = mongoc_client_get_collection (client, "test", "test"); doc = bson_new (); bson_oid_init (&oid, NULL); BSON_APPEND_OID (doc, "_id", &oid); BSON_APPEND_UTF8 (doc, "hello", "world"); if (!mongoc_collection_insert (collection, MONGOC_INSERT_NONE, doc, NULL, &error)) { printf ("%s\n", error.message); } bson_destroy (doc); mongoc_collection_destroy (collection); mongoc_client_destroy (client); return 0; } ]]>

Let's use GCC and pkg-config to compile example3.c.

gcc -o example3 example3.c $(pkg-config --cflags --libs libmongoc-1.0)

When using the MongoDB C Driver, you must call mongoc_init() at the beginning of your application. This allows the driver to initialize it's required subsystems. Failure to do so will result in a runtime crash.

Now let's run it!

./example3

Let's make a query with the MongoDB shell now and see what happened!

[christian@starpulse ~]$ mongo MongoDB shell version: 2.4.10 connecting to: test > use test switched to db test > db.test.find({}) { "_id" : { "$oid" : "534cde1a4f05ea4055d4cd4c" }, "hello" : "world" } > bye