Are you productive with MongoDB from Java?

Konstantin Triger
Javarevisited
Published in
2 min readNov 14, 2019

MongoDB is doing great, firmly holding a prestigious #5 on the db-engines ranking site. It means that we, developers, are using it a lot.

When looking on the official driver API, we can see an effort to make an API as fluent as possible:

collection.find(and(gte(“stars”, 2), lt(“stars”, 5), eq(“categories”, “Bakery”)));

Yet, there are many issues:

  • All fields are Strings without auto completion.
  • No type safety on operators (Is stars a number?! Is categories a collection (?!) of Strings or …?!).
  • Do we really like using gte for >= ?! I mean, is it easy to read and understand this expression?
  • And finally, when the schema changes, we are back to 80' with find-replace…

Fortunately there is a simple and effective solution to those issues — FluentMongo, which adds the missing ingredient to the API — type safety and Java integration. It lets you use normal Java to write filters, projections, updates, sorts and indexes. For example:

collection.find(builder.filter(r -> r.getStars() >= 2 && r.getStars() < 5 && r.getCategories().contains("Bakery")));

You can be both productive with MongoDB and write a maintainable code now!

Other Programming Articles you may like
10 Things Java Programmer Should Learn in 2019
10 Programming languages You can Learn in 2019
10 Tools Every Java Developer Should Know
10 Reasons to Learn Java Programming languages
10 Frameworks Java and Web Developer should learn in 2019
10 Tips to become a better Java Developer in 2019
Top 5 Java Frameworks to Learn in 2019
10 Reasons to Learn Python in 2019
10 Testing Libraries Every Java Developer Should Know

--

--

Konstantin Triger
Javarevisited

I’m a Software Architect passionated about technology that solves real business problems