Q promises wrapper for Microsoft Azure DocumentDB Node.js SDK

This project provides a Q promises wrapper for Azure DocumentDB Node.js driver.

For more information please see the Microsoft Azure Node.js Developer Center and the Azure DocumentDB Node.js SDK documentation.


Q Promises Module

The Q promises Node.js module extends the core DocumentDB module to use Q promises for all calls, exposed through the DocumentClientWrapper.

npm install documentdb-q-promises


To use this SDK to call Azure DocumentDB, you need to first create an account.

You can follow this tutorial to help you get started.


Hello World using Q Promises via the Q Promises Module

    var DocumentClient = require('documentdb-q-promises').DocumentClientWrapper;

    var host = [hostendpoint];                    // Add your endpoint
    var masterKey = [database account masterkey]; // Add the massterkey of the endpoint

    var client = new DocumentClient(host, {masterKey: masterKey});
    var databaseDefinition = { id: "sample database" }
    var collectionDefinition = { id: "sample collection" };
    var documentDefinition = { id: "hello world doc", content: "Hello World!" };

    var database, collection, document;
        .then(function(databaseResponse) {
            database = databaseResponse.resource;
            return client.createCollectionAsync(database._self, collectionDefinition);
        .then(function(collectionResponse) {
            collection = collectionResponse.resource;

            return client.createDocumentAsync(collection._self, documentDefinition);
        .then(function(documentResponse) {
            var document = documentResponse.resource;
            console.log('Created Document with content: ', document.content);
        .fail(function(error) {
            console.log("An error occured", error);


Getting started with Azure DocumentDB on Node.js:

Azure Demo: Getting started with Azure DocumentDB on Node.js

Need Help?

Be sure to check out the Microsoft Azure Developer Forums on MSDN or the Developer Forums on Stack Overflow if you have trouble with the provided code.

Contribute Code or Provide Feedback

If you would like to become an active contributor to this project please follow the instructions provided in Azure Projects Contribution Guidelines.

If you encounter any bugs with the library please file an issue in the Issues section of the project.


  • DoQmentDB - A Promise-based DocumentDB client for MongoDB users
  • Docooment - A Mongoose like Azure DocuomentDB ORM

Learn More