summaryrefslogtreecommitdiff
path: root/jstests/core/geo_multikey0.js
blob: 827dd9a41a1d42c40fa46c306dce944772dbf8a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// 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}}));
}