Live data from Hacker News

Show HN: SQL to Mongo Query Translator

querymongo.com

1–10 of 34 posts

Re: Show HN: SQL to Mongo Query Translator

#4
I don't have any experience with MongoDB, but the example put me off using it completely. The MySQL query is concise and brief, the MongoDB equivalent is bloated. Only after several seconds I was able to deduce that the MongoDB query probably does something more than MySQL query. Can you please make the examples more comparable? Or did I misunderstand the MongonDB and it actually is so bloated by design? I believe it is not your goal to discourage people from MongoDB , if so, better not do it unintentionally.

Re: Show HN: SQL to Mongo Query Translator

#7
The default query already filled in is translating to the use of a Group function, which is a very bad idea. While not deprecated per se, its use is discouraged.

Group does not function in Sharding mode at all, it also takes a lock on the JavaScript interpreter making it non-parallelizable.

Map/Reduce is somewhat better in that it is shardable, and with V8 likely in the next stable release, will have better parallelization prospects.

Ideally, you should be using the new Aggregation Framework to do this kind of work: http://docs.mongodb.org/manual/applications/aggregation/

(EDIT) To clarify - Aggregation is ideal because its implementation is 100% in C++, meaning there are no JavaScript interpreter locks necessary to run it, so it is parallelizable. Additionally, one of the biggest overhead costs to MapReduce and Group in MongoDB is the translation back and forth between BSON (the native format MongoDB uses for data, or rather the C++ representations thereof) and JavaScript types. Aggregation not utilizing JavaScript eliminates this overhead and manipulates the database' internal types directly.

Re: Show HN: SQL to Mongo Query Translator

#8
Very nice! I once thought about doing something like this, but I had some real work to do. Thanks for this resource!

This is specially useful because of the verbosity and ugliness of the "JSON" API (much more difficult to get right by hand than SQL) and because I found 0 working GUI tools to work with Mongo in a mac (they all crash at startup or after ~5 seconds of usage in a modern mac).

Re: Show HN: SQL to Mongo Query Translator

#9
post #6

Not particularly useful, I tried a simple join and I got this error message: Failure parsing MySQL query: Unable to convert queries based on more than one table

Sorry about that! Built this in a hackathon and this first version doesn't support joins yet.

Re: Show HN: SQL to Mongo Query Translator

#10
post #7

The default query already filled in is translating to the use of a Group function, which is a very bad idea. While not deprecated per se, its use is discouraged. Group does not function in Sharding mode at all , it also takes a lock on the JavaScript interpreter making it non-parallelizable. Map/Reduce is somewhat better in that it is shardable, and with V8 likely in the next stable release, will have better parallel…

Thanks, that's extremely helpful. Based on how this is built, it might not actually be that hard to migrate over to the aggregation framework. I'll take a look.
Post reply on HN