summaryrefslogtreecommitdiff
path: root/jstests/core/geo_s2nonstring.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/core/geo_s2nonstring.js')
-rwxr-xr-xjstests/core/geo_s2nonstring.js22
1 files changed, 22 insertions, 0 deletions
diff --git a/jstests/core/geo_s2nonstring.js b/jstests/core/geo_s2nonstring.js
new file mode 100755
index 00000000000..11fc8f4f4c4
--- /dev/null
+++ b/jstests/core/geo_s2nonstring.js
@@ -0,0 +1,22 @@
+// Added to make sure that S2 indexing's string AND non-string keys work.
+t = db.geo_s2nonstring
+t.drop()
+
+t.ensureIndex( { geo:'2dsphere', x:1 } );
+
+t.save( { geo:{ type:'Point', coordinates:[ 0, 0 ] }, x:'a' } );
+t.save( { geo:{ type:'Point', coordinates:[ 0, 0 ] }, x:5 } );
+
+t.drop()
+t.ensureIndex( { geo:'2dsphere', x:1 } );
+
+t.save( { geo:{ type:'Point', coordinates:[ 0, 0 ] }, x:'a' } );
+t.save( { geo:{ type:'Point', coordinates:[ 0, 0 ] } } );
+
+// Expect 1 match, where x is 'a'
+assert.eq( 1, t.count( { geo:{ $near:{ $geometry:{ type:'Point', coordinates:[ 0, 0 ] },
+ $maxDistance: 20 } }, x:'a' } ) );
+
+// Expect 1 match, where x matches null (missing matches null).
+assert.eq( 1, t.count( { geo:{ $near:{ $geometry:{ type:'Point', coordinates:[ 0, 0 ] },
+ $maxDistance: 20 } }, x:null } ) );