Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
A script for mongo shell to get the collection structure.
var conn = new Mongo();
db = conn.getDB(<DB_NAME>);
var cursor = db.<COLLECTION>.find();
var items = [];
items = cursor.toArray();
var dbstruc = {};
for (var i = 0; i < items.length; ++i) {
var target = items[i];
getKP(target,dbstruc);
}
printjson(dbstruc);
function getKP (target,dbstruc) {
for (var k in target) {
if(typeof target[k] !== "object"){
if (target.hasOwnProperty(k) && !dbstruc.hasOwnProperty(k)) {
dbstruc[k] = typeof target[k];
}
}else{
dbstruc[k] = {};
getKP(target[k],dbstruc[k]);
}
}
}

abt3bs commented May 22, 2015

works like a charm! Howver, I subsequently found the robomongo app and it's a nice tool to use in conjuction with mongo!

abt3bs commented May 22, 2015

works like a charm! However, I subsequently found the robomongo app and it's a nice tool to use in conjuction with mongo!

Owner

hkasera commented Sep 5, 2015

Thanks abt3bs! Glad it helped you 👍

Thanks, it was really useful

For some strange reason, when running with MongoChef 3.5.1 IntelliShell, it errored out:

E QUERY    [thread1] ReferenceError: getKP is not defined :
@(shell):3:3

I had to move getKP() to be before the rest of the code but yes it worked, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment