HomeLearnHow-toCapture IoT Data With MongoDB Stitch in 5 Minutes

Capture IoT Data With MongoDB Stitch in 5 Minutes

Updated: Apr 20, 2022 |

Published: Oct 03, 2018

  • MongoDB
  • JavaScript
  • IoT

By Maxime Beugnet

Rate this article

Please note: This article discusses Stitch. Stitch is now MongoDB Realm. All the same features and functionality, now with a new name. Learn more here. We will be updating this article in due course.

Capturing IoT (Internet of Things) data is a complex task for 2 main reasons:

  • We have to deal with a huge amount of data so we need a rock solid architecture.
  • While keeping a bulletproof security level.

First, let's have a look at a standard IoT capture architecture:

standard IoT capture architecture.
standard IoT capture architecture.

On the left, we have our sensors. Let's assume they can push data every second over TCP using a POST and let's suppose we have a million of them. We need an architecture capable to handle a million queries per seconds and able to resist any kind of network or hardware failure. TCP queries need to be distributed evenly to the application servers using load balancers and finally, the application servers are able to push the data to our multiple Mongos routers from our MongoDB Sharded Cluster.

As you can see, this architecture is relatively complex to install. We need to:

  • buy and maintain a lot of servers,
  • make security updates on a regular basis of the Operating Systems and applications,
  • have an auto-scaling capability (reduce maintenance cost & enable automatic failover).

This kind of architecture is expensive and maintenance cost can be quite high as well.

Now let's solve this same problem with MongoDB Stitch!

MongoDB Stitch architecture
MongoDB Stitch architecture

Once you have created a MongoDB Atlas cluster, you can attach a MongoDB Stitch application to it and then create an HTTP Service containing the following code:

1exports = function(payload, response) {
2 const mongodb = context.services.get("mongodb-atlas");
3 const sensors = mongodb.db("stitch").collection("sensors");
4 var body = EJSON.parse(payload.body.text());
5 body.createdAt = new Date();
6 sensors.insertOne(body)
7 .then(result => {
8 response.setStatusCode(201);
9 });

And that's it! That's all we need! Our HTTP POST service can be reached directly by the sensors from the webhook provided by MongoDB Stitch like so:

1curl -H "Content-Type: application/json" -d '{"temp":22.4}' https://webhooks.mongodb-stitch.com/api/client/v2.0/app/stitchtapp-abcde/service/sensors/incoming_webhook/post_sensor?secret=test

Because MongoDB Stitch is capable of scaling automatically according to demand, you no longer have to take care of infrastructure or handling failovers.

#Next Step

Thanks for taking the time to read my post. I hope you found it useful and interesting.

If you are looking for a very simple way to get started with MongoDB, you can do that in just 5 clicks on our MongoDB Atlas database service in the cloud.

You can also try MongoDB Stitch for free and discover how the billing works.

If you want to query your data sitting in MongoDB Atlas using MongoDB Stitch, I recommend this article from Michael Lynn.

Rate this article
MongoDB logo
© 2021 MongoDB, Inc.


  • Careers
  • Investor Relations
  • Legal Notices
  • Privacy Notices
  • Security Information
  • Trust Center
© 2021 MongoDB, Inc.