Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

How to Translate SQL Queries to MongoDB

DZone's Guide to

How to Translate SQL Queries to MongoDB

· Java Zone
Free Resource

Download Microservices for Java Developers: A hands-on introduction to frameworks and containers. Brought to you in partnership with Red Hat.

We've heard plenty of reasons one might transition from a relational database to a NoSQL solution like MongoDB, but there can be a learning curve. Developers looking to switch over to (or just do some side work with) MongoDB might be interested in Max Seiden's tips on how to translate SQL queries to MongoDB. In Seiden's case, MongoDB is a "log analytics engine" running alongside PostgreSQL, but his use case has still produced a number of useful techniques.

Specifically, Seiden runs through an assortment of SQL needs and demonstrates their usage in MongoDB. For each, he also gives a brief explanation of what's interesting about the translation and about the queries themselves. For example, he looks at the following topics:

  • Counts & Distincts
  • Counts with Predicates
  • Projections with Predicates
  • Group by remote IP with URLs and Predicates
  • Group by remote IP with Distinct URLs and Predicates

And Seiden even gathered some useful, real-world insights with this set-up. He was able to discover "petty attacks" on his website using a modified version of one of his "distinct" queries, for example.

There are, of course, drawbacks and caveats, but overall, Seiden's SQL-to-MongoDB examples provide a fantastic look at how the two database options relate to each other. Read the full article to see how it's all done.

Download Building Reactive Microservices in Java: Asynchronous and Event-Based Application Design. Brought to you in partnership with Red Hat

Topics:

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}