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);
|