diff options
Diffstat (limited to 'jstests/core/geo_s2nonstring.js')
-rwxr-xr-x | jstests/core/geo_s2nonstring.js | 22 |
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 } ) ); |