summaryrefslogtreecommitdiff
path: root/jstests/core/js8.js
blob: 9504d2a7ac566e5ea74189e2a43b1f5f337e81b6 (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
38
39
40
// @tags: [
//     # Uses $where operator
//     requires_scripting,
// ]

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

t.save({a: 1, b: [2, 3, 4]});

assert.eq(1, t.find().length(), "A");
assert.eq(1,
          t.find(function() {
               return this.a == 1;
           }).length(),
          "B");
assert.eq(1,
          t.find(function() {
               if (!this.b.length)
                   return true;
               return this.b.length == 3;
           }).length(),
          "B2");
assert.eq(1,
          t.find(function() {
               return this.b[0] == 2;
           }).length(),
          "C");
assert.eq(0,
          t.find(function() {
               return this.b[0] == 3;
           }).length(),
          "D");
assert.eq(1,
          t.find(function() {
               return this.b[1] == 3;
           }).length(),
          "E");

assert(t.validate().valid);