diff options
Diffstat (limited to 'jstests/geo_uniqueDocs2.js')
-rw-r--r-- | jstests/geo_uniqueDocs2.js | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/jstests/geo_uniqueDocs2.js b/jstests/geo_uniqueDocs2.js deleted file mode 100644 index f9b95113f78..00000000000 --- a/jstests/geo_uniqueDocs2.js +++ /dev/null @@ -1,80 +0,0 @@ -// Additional checks for geo uniqueDocs and includeLocs SERVER-3139. -// SERVER-12120 uniqueDocs is deprecated. -// Server always returns results with implied uniqueDocs=true - -collName = 'jstests_geo_uniqueDocs2'; -t = db[collName]; -t.drop(); - -t.save( {loc:[[20,30],[40,50]]} ); -t.ensureIndex( {loc:'2d'} ); - -// Check exact matches of different locations. -assert.eq( 1, t.count( { loc : [20,30] } ) ); -assert.eq( 1, t.count( { loc : [40,50] } ) ); - -// Check behavior for $near, where $uniqueDocs mode is unavailable. -assert.eq( [t.findOne()], t.find( { loc: { $near: [50,50] } } ).toArray() ); - -// Check correct number of matches for $within / $uniqueDocs. -// uniqueDocs ignored - does not affect results. -assert.eq( 1, t.count( { loc : { $within : { $center : [[30, 30], 40] } } } ) ); -assert.eq( 1, t.count( { loc : { $within : { $center : [[30, 30], 40], $uniqueDocs : true } } } ) ); -assert.eq( 1, t.count( { loc : { $within : { $center : [[30, 30], 40], $uniqueDocs : false } } } ) ); - -// For $within / $uniqueDocs, limit applies to docs. -assert.eq( 1, t.find( { loc : { $within : { $center : [[30, 30], 40], $uniqueDocs : false } } } ).limit(1).itcount() ); - -// Now check a circle only containing one of the locs. -assert.eq( 1, t.count( { loc : { $within : { $center : [[30, 30], 10] } } } ) ); -assert.eq( 1, t.count( { loc : { $within : { $center : [[30, 30], 10], $uniqueDocs : true } } } ) ); -assert.eq( 1, t.count( { loc : { $within : { $center : [[30, 30], 10], $uniqueDocs : false } } } ) ); - -// Check number and character of results with geoNear / uniqueDocs / includeLocs. -notUniqueNotInclude = db.runCommand( { geoNear : collName , near : [50,50], num : 10, uniqueDocs : false, includeLocs : false } ); -uniqueNotInclude = db.runCommand( { geoNear : collName , near : [50,50], num : 10, uniqueDocs : true, includeLocs : false } ); -notUniqueInclude = db.runCommand( { geoNear : collName , near : [50,50], num : 10, uniqueDocs : false, includeLocs : true } ); -uniqueInclude = db.runCommand( { geoNear : collName , near : [50,50], num : 10, uniqueDocs : true, includeLocs : true } ); - -// Check that only unique docs are returned. -assert.eq( 1, notUniqueNotInclude.results.length ); -assert.eq( 1, uniqueNotInclude.results.length ); -assert.eq( 1, notUniqueInclude.results.length ); -assert.eq( 1, uniqueInclude.results.length ); - -// Check that locs are included. -assert( !notUniqueNotInclude.results[0].loc ); -assert( !uniqueNotInclude.results[0].loc ); -assert( notUniqueInclude.results[0].loc ); -assert( uniqueInclude.results[0].loc ); - -// For geoNear / uniqueDocs, 'num' limit seems to apply to locs. -assert.eq( 1, db.runCommand( { geoNear : collName , near : [50,50], num : 1, uniqueDocs : false, includeLocs : false } ).results.length ); - -// Check locs returned in includeLocs mode. -t.remove({}); -objLocs = [{x:20,y:30,z:['loc1','loca']},{x:40,y:50,z:['loc2','locb']}]; -t.save( {loc:objLocs} ); -results = db.runCommand( { geoNear : collName , near : [50,50], num : 10, uniqueDocs : false, includeLocs : true } ).results; -assert.contains( results[0].loc, objLocs ); - -// Check locs returned in includeLocs mode, where locs are arrays. -t.remove({}); -arrLocs = [[20,30],[40,50]]; -t.save( {loc:arrLocs} ); -results = db.runCommand( { geoNear : collName , near : [50,50], num : 10, uniqueDocs : false, includeLocs : true } ).results; -// The original loc arrays are returned as objects. -expectedLocs = arrLocs - -assert.contains( results[0].loc, expectedLocs ); - -// Test a large number of locations in the array. -t.drop(); -arr = []; -for( i = 0; i < 10000; ++i ) { - arr.push( [10,10] ); -} -arr.push( [100,100] ); -t.save( {loc:arr} ); -t.ensureIndex( {loc:'2d'} ); -assert.eq( 1, t.count( { loc : { $within : { $center : [[99, 99], 5] } } } ) ); |