// Multikey geo values tests - SERVER-3793. t = db.jstests_geo_multikey0; t.drop(); // Check that conflicting constraints are satisfied by parallel array elements. t.save({loc: [{x: 20, y: 30}, {x: 30, y: 40}]}); assert.eq( 1, t.count({loc: {x: 20, y: 30}, $and: [{loc: {$gt: {x: 20, y: 35}, $lt: {x: 20, y: 34}}}]})); // Check that conflicting constraints are satisfied by parallel array elements with a 2d index on // loc. if (0) { // SERVER-3793 t.ensureIndex({loc: '2d'}); assert.eq( 1, t.count({loc: {x: 20, y: 30}, $and: [{loc: {$gt: {x: 20, y: 35}, $lt: {x: 20, y: 34}}}]})); } t.drop(); // Check that conflicting constraints are satisfied by parallel array elements of x. t.save({loc: [20, 30], x: [1, 2]}); assert.eq(1, t.count({loc: [20, 30], x: {$gt: 1.7, $lt: 1.2}})); // Check that conflicting constraints are satisfied by parallel array elements of x with a 2d index // on loc,x. if (0) { // SERVER-3793 t.ensureIndex({loc: '2d', x: 1}); assert.eq(1, t.count({loc: [20, 30], x: {$gt: 1.7, $lt: 1.2}})); }