Open-source MongoDB admin app built on Meteor

Open-source MongoDB admin app built on Meteor

We are developing the first Meteor-based admin for MongoDB. It is currently in well-working alfa version.

We’d like you to try it and hope you’ll enjoy the useful features it has.

Homepage: http://www.drmongo.com

GitHub: https://github.com/DrMongo/DrMongo

Let us know what you think or send us feature requests.

EDIT: Why we started Dr. Mongo https://medium.com/@drmongoapp/why-we-started-dr-mongo-d93acdf94aed#.rjfyf8em6

Thank you!

8 Likes

That clicking the _id type fields feature is truly magical. Mega props! Looking forward to seeing this app develop further.

Suggestion number 1: make the values in-line editable so you don’t have to click off to the ace editor view
Suggestion number 2: write “port” instead of writing “host” a second time in the connection form
Suggestion number 3: all the icons need title attributes – at the moment I’m clicking on things just hoping I’m not going to drop a collection

(Would you prefer these as github issues?)

Mongol and Constellation are cool for little in-app tweaks while there still aren’t too many documents to flick through. But, when I’ve got more data, I often find myself wanting a big table of documents to scan, with powerful search features, and you’ve certainly delivered that. (Still having to pinch myself about how you can click around your collections from _id to _id – so, so good.)

I’ve always run rockmongo (php web app for mongo management) so I can have my full db readily available in a tab right beside the app I’m developing, but that requires the set up of mongo with php (not fun!). This is the first thing I’ve seen that might be a viable replacement. And so nice that it’s written with Meteor!

3 Likes

Thank you for your feedback! We are happy that you like it so much!

If you can, add these suggestion please as github issues.

Awesome.

  1. Suppose I have a MongoDB running, does this admin manage my MongoDB in run-time?

  2. Is it possible to make MongoDB Admin as a package so developers can load and embed it?

  1. Yes. You just need to use the app to set up a connection to the running instance. (I know this because I just did it.)
  2. The developer(s) have stated here that they plan to do this.

No … wait … For 1., you mean a cloud hosted db instance like Compose? As far as I can tell, that doesn’t work – at least I couldn’t connect to my Compose instance.

@achtan should we be able connect to remote dbs or is this intended for development on localhost only?

you can connect to remote hosts with ssl tunel

Cool. So how does that look in practice?

The below doesn’t work for a connection to a Compose db.

Name
myDbName
Host
mongodb://user:passwd@a12.alcatraz.0.mongolayer.com
Host (should be “port”)
10098
Default database
meteor

What else do you need to do?

(i.e. I’m not sure how to create a ssl tunnel to compose.io – or is this something you need to do with a self-hosted mongo instance?)

Hi, I have not used compose.io, but for connecting to our own servers (which only allow us to connect using SSH), I use the OSX app “SSH Tunnel”. Once I set it up, I use the selected PORT tunnelled to our servers.

In my case, I use port 7890 to our servers so my Dr. Mongo setup is 127.0.0.1:7890

Hope this helps. Or ask further questions.

First off, amazing work! SO NEEDED!

Feature requests:

  • “sub-tables” …so i think you are currently conceptualizing it as “pin the most important attributes”, which appear as table columns like in PHPMyAdmin. That’s definitely an upgrade to looking at object dumps. But what if you could drill down into sub-documents and see their contents in table form (recursively).
  • the ability to filter the results shown to the results subscribed to by the client application, like Meteor toys. That to me seems like the “Ultimate” feature here that couples it to Meteor in the perfect way.
  • I think someone else mentioned this: the ability to use it in your package. Perhaps with a prescribed pattern to embed it and skin it.
  • if there’s a schema (SimpleSchema) associated with a collection or somehow discovered (maybe multiple if multiple are discovered), the ability to insert documents into a form (AutoForm) without having to specify all the key names. Just like you would in PHPMyAdmin where it has full knowledge of all the fields. Perhaps you don’t even need simple schema, since you’re already detecting fields in result sets. Basically, you shouldn’t have to do collection.insert({foo: 1, bar: 2}). Same with finders. Automate that so you’re just filling values in a form. And then once that’s done, do the equivalent here of the “sub-tables” feature I mentioned above, but in this case “sub-forms” where you detect the sub-docs of documents in the current result set, and use that to determine what sub-forms to display. I don’t want to code when using my database management tool! Not sure why haven’t seen stuff this in depth for the Mongo world yet. …And then the ability to add new fields to these sub-forms!

Again, great work!

Thanks for the feedback faceyspacey. I will submit all these as issues and will discuss them further. Nice ideas! Thanks!

Why reinvent the wheel? RoboMongo is free and open-source, and MongoChef is free for non-commercial use. We pay for MongoChef because it has a truly astounding range of features. I especially love the drag-and-drop query builder and the ability to copy and paste documents across collections–we use this feature to quickly copy production data to staging and testing servers.

Pick a color for each database to prevent accidental changes on production database instead of the local one.

In MongoChef you can create a read-only role.

I don’t mean to disparage your project, I’m just honestly curious why you’d want to spend time on this when other teams are already light-years ahead.

Cheers!
Max

Hi Max,

You post made rethink the thoughts we had when starting the project.

Yes, these apps are already far ahead of us. But there are at least two fundamental reasons for drmongo I can think of.

Even though robomongo is open-source, I, as a Javascript developer understanding HTML and CSS, had no way of improving it or altering it for my use. I don’t speak the language it’s built on. We wanted to make an app for the growing number of Meteor (and other JS) developers. Using drmongo they will be able to fork and alter it to their needs or even send pull-request with improvements.

The other reason is Javascript itself and its (I believe) important role in (near) future of apps. Everything is becoming web-based, multi-platform and multi-device. JS /HTML / CSS is the best candidate I far as I can see.

We don’t want to reinvent the week. But the wheels we drive on today don’t even resemble the first ones used.

I trully appreciate you comment, though, because it actually helped me clarify drmongo’s purpose.

Thanks!
Rad

1 Like

Hi,
I’m not absolutely sure, but it seems robomongo is not been updated anymore.

As for mongochef, yes, it is great but there should really exist an open source app that does this well. I mean, all of us use meteor and mongo profesionally and you are, supposedly, breaking the mongochef license if using it when doing your work. I think, if you are developing an app for a client and using mongochef as a free product, you are using it incorrectly.

So, I’m in favor off developing an open source app for us to use it freely even in professionally developed apps …

1 Like

@Rad One of the biggest benefits of robomongo for me is the fact that I can use it while developing my app offline, say if Im on the train or an airplane. Will this app have similar functionality?

Either way, really appreciate you adding another great open source app for people to learn from.

@etmarch Yes, basically, you can do this now already. Since drmongo is running on your local machine, for connections to local databases, you can use it in offline mode, too.

Why we started Dr. Mongo https://medium.com/@drmongoapp/why-we-started-dr-mongo-d93acdf94aed#.rjfyf8em6