Respondly explains why devs love Meteor and MongoDB

With the recent release of Meteor 1.0 (and the huge buzz around it), developers may be wondering why the Meteor framework is so popular. Or perhaps, for developers new to web programming, what is Meteor?

To help you better understand Meteor from a developer's perspective, we've asked Tim Haines, founder of team email and twitter inbox service Respondly, to share his experience working with both Meteor and MongoDB.

Respondly on Meteor and MongoDB 

Q: Let's start with an easy one. What is Meteor?

Meteor is an open source platform for building real-time web and mobile apps in pure JavaScript.

Q: Why is MongoDB commonly mentioned with Meteor?

MongoDB is somewhat blessed by Meteor as the database of choice for the 1.0 release, and the native built-in support for it is fantastic.  Meteor uses special MongoDB features (such as the oplog) to keep real-time data reactivity efficient.

Meteor also has a client-side MongoDB implementation (called minimongo) which runs in the browser. Minimongo allows you to write the same query for your server side and client side data collections, and Meteor's observer feature lets you react to changes to both in real time.

Q: How does developing with Meteor and MongoDB work?

In development on your local machine, Meteor takes care of installing and starting MongoDB for you. When you start your Meteor app, it loads a MongoDB instance and takes care of everything for you. If you'd like to query that MongoDB instance, you can simply run "meteor mongo"  in another terminal window, and it loads a MongoDB shell connected to your app's database. This is great for ad hoc queries and bulk updates while building your app.

Q: Respondly is built on top of Meteor. Why did you choose Meteor and how did you find the development process?

Meteor's been great to work with.  It's the perfect framework for building real-time web apps and is tremendously useful for Respondly. We provide our users real-time up-to-the-moment information as they're communicating with their own customers.

Meteor takes care of almost all of the plumbing for you, allowing you to concentrate on developing business value. In particular, Meteor includes real-time monitoring of MongoDB for changes to data (via oplog tailing). This monitoring allows Meteor to:

  • track which (if any) clients need new or updated data
  • publish new data to clients that need it
  • update the UI in real-time with the new data that arrives

with minimal developer effort. The real-time reactivity from db updates all the way to UI updates is amazing.

Q: What about MongoDB? How have you found developing on it?

MongoDB's been great to work with.  Coming from a SQL background, I've really enjoyed the variety of data structures and queries that MongoDB can handle.  We've been able to make great use of storing rich documents that include arrays and sub-documents, to better map to our real-world understanding of our data.  MongoDB's also very versatile in its query language, having an update modifier for almost anything.

Build on Meteor!

We hope this Q&A has been helpful in highlighting what makes Meteor and MongoDB a great stack for web developers. The MongoLab and Meteor teams look forward welcoming you to our community!

8 Responses to Respondly explains why devs love Meteor and MongoDB

  1. EJ 2014/11/04 at 9:56 pm #

    It would be helpful on these types of blog posts if the biggest challenges were listed. It can’t be all sunshine.

  2. Chris Chang 2014/11/05 at 7:23 am #

    Hi EJ,

    Great feedback. I’ll reach out to Tim to see if he has anything to share.

    Thanks for reading!

  3. Max Hodges 2014/11/16 at 10:20 pm #

    I’m building with Meteor and trying to do text search on a collection with 133K entries. It’s completely unusable. Each query takes minutes! I’ve spent the last day-and-a-half breaking the data own into arrays and re-writing my application code. A lot of work for something which would happen extremely fast with minimum effort in SQL.

  4. Chris Chang 2014/11/17 at 12:32 pm #

    Hi Max,

    If you’re running on MongoLab we’d be happy to take a look. Just email us at support at mongolab dot com. If not, I can point you to some good resources if you ping me directly chris at mongolab.

    Cheers!

  5. Max Hodges 2014/11/18 at 5:57 am #

    Hi Chris, actually I managed to solve it. I had autopublish added, so it was trying to sync a 3MB database each session. I removed that and set up proper subscriptions. It’s working surprisingly performant now.
    http://kanaphoneme.meteor.com/
    Cheers~!

  6. Vinoth Kumar 2014/12/14 at 10:22 am #

    I would like to ask you for one question? I m going to start one new project. But before going to start that project, I need to confirm the architecture. MEAN or Meteor js? Really I m confusing. Kindly share your thoughts on this.

  7. Chris Chang 2014/12/15 at 6:15 pm #

    Hi Vinoth,

    Meteor makes it really easy to get up and running quickly and provides a lot of functionality out of the box. Really depends on what your project is- feel free to email me at chris@mongolab.com if you’d like to discuss.

    Best,

    Chris

  8. Alex Mills 2015/01/19 at 12:06 am #

    Or it could be when it comes to meteor :)

Leave a Reply