summaryrefslogtreecommitdiff
path: root/jstests/array4.js
blob: 99c1657364e0670398cf91f4775621f40ed0e6f1 (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
32
33
34
35
36
37

t = db.array4;
t.drop();

t.insert({"a": ["1", "2", "3"]});
t.insert({"a" : ["2", "1"]});

var x = {'a.0' : /1/};

assert.eq(t.count(x), 1);

assert.eq(t.findOne(x).a[0], 1);
assert.eq(t.findOne(x).a[1], 2);

t.drop();

t.insert({"a" : {"0" : "1"}});
t.insert({"a" : ["2", "1"]});

assert.eq(t.count(x), 1);
assert.eq(t.findOne(x).a[0], 1);

t.drop();

t.insert({"a" : ["0", "1", "2", "3", "4", "5", "6", "1", "1", "1", "2", "3", "2", "1"]});
t.insert({"a" : ["2", "1"]});

x = {"a.12" : /2/};
assert.eq(t.count(x), 1);
assert.eq(t.findOne(x).a[0], 0);

// A query for an undefined value should not match an array.
t.drop();
t.insert( { a:[ 5 ] } );
t.insert( { a:[ 5, 6 ] } );
t.insert( { a:[ 5, "foo" ] } );
assert.eq( 0, t.count( { a:{ $in:[ undefined ] } } ) );