1. 3
  1.  

  2. 3

    It’s hard to take seriously somebody who thinks MongoDB is “a joy to use”.

    1. 3

      Not least, SQL is practically an open sore when it’s written in a program. Think about it: you’ve got this nice strictly-typed language with all sorts of compiler guarantees, and in the middle of it is a meaningless string blob that isn’t compiled, syntax-checked, or type-checked.

      Haskell has a library that does all those things. And with C# you can use LINQ to build SQL queries.

      It is bound to a foreign source of data through an API that isn’t knowable to the program or compiler, and may change without warning. It’s “I give up, random potentially correct garbage of dubious meaning goes here.” It’s the equivalent of an ugly CDATA in an XML document.

      And how is MongoDB better at this?

      And on top of this, MongoDB adds another power tool: the programming language you use to query the database is the ubiquitous JavaScript, arguably the most popular and flexible programming language today.

      Oh? MongoDB provides a query language that is based on JSON. And as the shell documentation states:

      Although these methods use JavaScript, most interactions with MongoDB do not use JavaScript but use an idiomatic driver in the language of the interacting application.

      There’s much more, too, such as built-in scalability so you don’t have to build “sharding” into your app. (Anyone who’s done that knows that you’re actually building a new custom database in your app code.)

      Well, certainly MongoDB provides sharding features. I claim it is questionable how well it scales. Every place I know using MongoDB uses it for prototyping then moves onto something else once they know what they want to do, but I do not know every place that uses MongoDB, of course. Unless there is a sleeper MongoDB cluster out there, I do not know of a single MongoDB deployment that compares to Cassandra, Riak, or even PostgreSQL.

      Does anyone know of 1000 node MongoDB clusters? The largest one I see on the MongoDB scale site is 600 nodes at Baidu.

      InfluxDB is on a very steep growth trajectory as it seeks to define what it means for a database to be natively time oriented, and answer the question of whether that is enough for a database, or if there’ll be a “last mile problem” that will make people want some of the stuff they can get from other types of databases too. Defining the boundaries of a database’s functionality is hard. But InfluxDB seems to be doing an admirable job of it.

      Is this true? After the clustering debacle I don’t really hear about InfluxDB much at all. Hot monitoring tools like Prometheus use their own storage.

      1. 2

        Regrettably, the author forgets two of the largest and highest-deployed NoSQL databases out there:

        LDAP and MUMPS!