+ | Parameter | Default value | Description |
+ | mongo.shell.path | mongo | Mongo shell path |
+ | mongo.shell.command.timeout | 60000 | Mongo command timeout |
+ | mongo.shell.command.table.limit | 1000 | Limit of documents displayed in a table |
+ | mongo.server.database | test | MongDB database name |
+ | mongo.server.host | localhost | Host of the MongDB server |
+ | mongo.server.port | 27017 | Port of the MongDB server |
+ | mongo.server.username | | Username for authentication |
+ | mongo.server.password | | Password for authentication |
+ | mongo.server.authentdatabase | | Database used for authentication |
+
+
+## How to use
+
+In Zeppelin, use `%mongodb` in a paragraph.
+After that, you can type the same Javascript code you use when you write scripts for the Mongo shell.
+For more information, please consult: https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/
+
+There are several functions that have been added to help you in Zeppelin:
+* printTable(cursor, fields, flattenArray): to print a table (i.e. it uses `%table`). Arguments:
+ * cursor: a DBQuery or DBCommandCursor instance
+ * fields: an array of field names to put in the table (can be null)
+ * flattenArray: if true, the arrays in the documents will also be flatten (false by default)
+* DBQuery.prototype.table: to print a table (it invokes the previous function)
+* DBCommandCursor.prototype.table: same as above
+
+Examples:
+```javascript
+%mongodb
+
+// Display a table
+db.zipcodes.find({ "city":"CHICAGO", "state": "IL" }).table()
+```
+
+```javascript
+%mongodb
+
+var states = db.zipcodes.aggregate( [
+ { $group: { _id: "$state", totalPop: { $sum: "$pop" } } },
+ { $match: { totalPop: { $lt: 1000*1000 } } },
+ { $sort: { totalPop: 1 } }
+] )
+
+// Build a 'table'
+print("%table state\ttotalPop")
+states.forEach(state => { print(state._id + "\t" + state.totalPop) })
+```
+
+
+## Examples
+
+* Configuration:
+
+
+* Queries (these examples come from: https://docs.mongodb.com/manual/tutorial/aggregation-zip-code-data-set/)
+
+
+
diff --git a/zeppelin-mongodb-interpreter/docs/zeppelin-mongo-config.png b/zeppelin-mongodb-interpreter/docs/zeppelin-mongo-config.png
new file mode 100644
index 00000000000..328b4ceaade
Binary files /dev/null and b/zeppelin-mongodb-interpreter/docs/zeppelin-mongo-config.png differ
diff --git a/zeppelin-mongodb-interpreter/docs/zeppelin-mongo-examples.png b/zeppelin-mongodb-interpreter/docs/zeppelin-mongo-examples.png
new file mode 100644
index 00000000000..0e111c9b23b
Binary files /dev/null and b/zeppelin-mongodb-interpreter/docs/zeppelin-mongo-examples.png differ
diff --git a/zeppelin-mongodb-interpreter/docs/zeppelin-mongo-interpreter-install.png b/zeppelin-mongodb-interpreter/docs/zeppelin-mongo-interpreter-install.png
new file mode 100644
index 00000000000..c78bba690b2
Binary files /dev/null and b/zeppelin-mongodb-interpreter/docs/zeppelin-mongo-interpreter-install.png differ
diff --git a/zeppelin-mongodb-interpreter/docs/zeppelin-mongodb-interpreter-monitor.png b/zeppelin-mongodb-interpreter/docs/zeppelin-mongodb-interpreter-monitor.png
new file mode 100644
index 00000000000..68cd0dbaba8
Binary files /dev/null and b/zeppelin-mongodb-interpreter/docs/zeppelin-mongodb-interpreter-monitor.png differ
diff --git a/zeppelin-mongodb-interpreter/docs/zeppelin-mongodb-interpreter.png b/zeppelin-mongodb-interpreter/docs/zeppelin-mongodb-interpreter.png
new file mode 100644
index 00000000000..803d794c030
Binary files /dev/null and b/zeppelin-mongodb-interpreter/docs/zeppelin-mongodb-interpreter.png differ
diff --git a/zeppelin-mongodb-interpreter/pom.xml b/zeppelin-mongodb-interpreter/pom.xml
new file mode 100644
index 00000000000..d76f96891c8
--- /dev/null
+++ b/zeppelin-mongodb-interpreter/pom.xml
@@ -0,0 +1,71 @@
+