3 ms·
As a user of RethinkDB in my new apps and also the author of a RethinkDB driver, I have to say that the query language is the absolute best I've worked with. I'
by orthecreedence 13y ago
As a user of RethinkDB in my new apps and also the author of a RethinkDB driver, I have to say that the query language is the absolute best I've worked with. I've been working with databases and writing queries for over 8 years now and ReQL is my favorite.
Being able to compose queries in a language-native way is really effective but also powerful in that you are essentially running programs on the database that it understands enough to optimize and distribute amongst its fellow servers. Not only that, you really can marry your code with the forms you send to the database, making it easy to compose queries that are built from conditionals from local variables.
Also because of the expressiveness, there are almost no places where I ever run two queries when selecting data. For instance in Mongo, I always used to do "get X. If X is this, then get Y, otherwise get Z." Now all that logic can be shipped off to the database (without having to build some huge SQL string) and when I get an answer back, it's the one I want.
Great query language, great database, great team.
- neumino 13y agoYou forgot great community! And you are part of it!
- rogerbinns 13y agoWhat does a query look like when you print it (to help with diagnostics and debugging)? I don't mean the results but rather what you have before calling run.
- orthecreedence 13y agoOn my primary platform (common lisp) when printed it looks like a large set of nested structures made up of "terms" (ie "create_database", "table", "function", etc) and datums (array, float, kv pair, etc). It's easy to pretty-print and get a view of the entire query structure before it's shipped off the the protocol buffer serializer. That's lisp though, and the print methods for the protobuf objects are built into the protobuf library. It's really going to depend on your language, probably. The nice thing about the query language is that the mapping between what you send the driver and what the driver sends to the server is pretty much 1:1, so what you see in front of you is the printed query (save for bugs in the driver).