This commit removes the geoNear command and moves its implementation
into the aggregation framework. Users should use the aggregate command
with a $geoNear stage.
The implementation rewrite additionally removes the limit in the
$geoNear aggregation stage. To limit the number of results, use a $limit
stage.
When a shard uses a hashed key pattern, only NumberLong types may be used
as split keys.
A small bug in hash_basic.js regarding 'middle' syntax was also fixed.
Instead of 10000 to the document as a whole, 10000 is now added to the
actual number in the document.
A small bug in read_only_test.js regarding the shardColl(...) function
was also found. It was fixed to now do what I believe the author originally
intended it to do.
At startup, the logic that checks for version-specific bugs that may need to be
worked around attempts to open the "local" database to see what version of
mongod was last used to access the data files. In queryableBackupMode, if there
is no local database, this can legally fail, at least for some storage engines.
This patch recovers from that failure, rather than shutting down the server.
This patch also updates the read_only and read_only_sharded test suites, to test
cases where there is no "local" database, as this is the standard
queryableBackupMode use case.