summaryrefslogtreecommitdiff
path: root/jstests/geo_mapreduce2.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/geo_mapreduce2.js')
-rw-r--r--jstests/geo_mapreduce2.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/jstests/geo_mapreduce2.js b/jstests/geo_mapreduce2.js
new file mode 100644
index 0000000..9c39345
--- /dev/null
+++ b/jstests/geo_mapreduce2.js
@@ -0,0 +1,36 @@
+// Geo mapreduce 2 from SERVER-3478
+
+var coll = db.geoMR2
+coll.drop()
+
+for( var i = 0; i < 300; i++ )
+ coll.insert({ i : i, location : [ 10, 20 ] })
+
+coll.ensureIndex({ location : "2d" })
+
+// map function
+m = function() {
+ emit( null, { count : this.i } )
+}
+
+// reduce function
+r = function( key, values ) {
+
+ var total = 0
+ for ( var i = 0; i < values.length; i++ ) {
+ total += values[i].count
+ }
+
+ return { count : total }
+};
+
+try{ coll.mapReduce( m, r,
+ { out : coll.getName() + "_mr",
+ sort : { _id : 1 },
+ query : { 'location' : { $within : { $centerSphere : [[ 10, 20 ], 0.01 ] } } } })
+
+}
+catch( e ){
+ // This should occur, since we can't in-mem sort for mreduce
+ printjson( e )
+}