45 lines
1.9 KiB
JavaScript
45 lines
1.9 KiB
JavaScript
// Test uniqueDocs option for $within and geoNear queries SERVER-3139
|
|
// SERVER-12120 uniqueDocs is deprecated. Server always returns unique documents.
|
|
|
|
collName = 'geo_uniqueDocs_test';
|
|
t = db.geo_uniqueDocs_test;
|
|
t.drop();
|
|
|
|
t.save({locs: [[0, 2], [3, 4]]});
|
|
t.save({locs: [[6, 8], [10, 10]]});
|
|
|
|
t.ensureIndex({locs: '2d'});
|
|
|
|
// geoNear tests
|
|
// uniqueDocs option is ignored.
|
|
assert.eq(2, db.runCommand({geoNear: collName, near: [0, 0]}).results.length);
|
|
assert.eq(2, db.runCommand({geoNear: collName, near: [0, 0], uniqueDocs: false}).results.length);
|
|
assert.eq(2, db.runCommand({geoNear: collName, near: [0, 0], uniqueDocs: true}).results.length);
|
|
results = db.runCommand({geoNear: collName, near: [0, 0], num: 2}).results;
|
|
assert.eq(2, results.length);
|
|
assert.close(2, results[0].dis);
|
|
assert.close(10, results[1].dis);
|
|
results = db.runCommand({geoNear: collName, near: [0, 0], num: 2, uniqueDocs: true}).results;
|
|
assert.eq(2, results.length);
|
|
assert.close(2, results[0].dis);
|
|
assert.close(10, results[1].dis);
|
|
|
|
// $within tests
|
|
|
|
assert.eq(2, t.find({locs: {$within: {$box: [[0, 0], [9, 9]]}}}).itcount());
|
|
assert.eq(2, t.find({locs: {$within: {$box: [[0, 0], [9, 9]], $uniqueDocs: true}}}).itcount());
|
|
assert.eq(2, t.find({locs: {$within: {$box: [[0, 0], [9, 9]], $uniqueDocs: false}}}).itcount());
|
|
|
|
assert.eq(2, t.find({locs: {$within: {$center: [[5, 5], 7], $uniqueDocs: true}}}).itcount());
|
|
assert.eq(2, t.find({locs: {$within: {$center: [[5, 5], 7], $uniqueDocs: false}}}).itcount());
|
|
|
|
assert.eq(2, t.find({locs: {$within: {$centerSphere: [[5, 5], 1], $uniqueDocs: true}}}).itcount());
|
|
assert.eq(2, t.find({locs: {$within: {$centerSphere: [[5, 5], 1], $uniqueDocs: false}}}).itcount());
|
|
|
|
assert.eq(
|
|
2,
|
|
t.find({locs: {$within: {$polygon: [[0, 0], [0, 9], [9, 9]], $uniqueDocs: true}}}).itcount());
|
|
assert.eq(
|
|
2,
|
|
t.find({locs: {$within: {$polygon: [[0, 0], [0, 9], [9, 9]], $uniqueDocs: false}}}).itcount());
|