8 comments

[ 3.0 ms ] story [ 31.6 ms ] thread
Wouldn't the simpler, faster and more appropriate syntax be

if (N > 50 || N < 1) ??

I think they may be trying something clever with the truthiness of N there...
It would be a simpler and shorter piece of code. Not sure why it would be faster though. Anyways, the point was in the behavior of `limit` which is easy to miss.
No it wouldn't, because -30 is supposed to work the same as 30, so you want to convert the sign to positive first. Personally, I'd use something like:

    if (!N || Math.abs(N) > 50 ) {
        N = 50
    };
So not only is performance abysmal, the query language has several non-obvious syntax problems. In retrospect, the idea of using JSON as a query language seems ill-advised and counter-intuitive.

I'm glad I am finally rid of MongoDB in my day-to-day job. I won't miss it.

Well, those 5 are very specific corner cases. Most people will not face them in real life.
The array insert order syntax seems like something you'd encounter every day.
Just to clarify on positive/negative limits on a cursor: if the limit number is negative, then the database will return that number of results and close the cursor. No further results for that query can be fetched. If the limit is positive you can leave the cursor open to receive further results, hence the option for both. (see http://stackoverflow.com/a/11995057/1148648)