summaryrefslogtreecommitdiff
path: root/jstests/pull_or.js
blob: 905c7a870600f3e2ea1e4a9328b8a1495b7aa1b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

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

doc = { _id : 1 , a : { b : [ { x : 1 },
                              { y : 'y' },
                              { x : 2 },
                              { z : 'z' } ] } };

t.insert( doc );

t.update({}, { $pull : { 'a.b' : { 'y' : { $exists : true } } } } );

assert.eq( [ { x : 1 }, { x : 2 }, { z : 'z' } ], t.findOne().a.b );

t.drop();
t.insert( doc );
t.update({}, { $pull : { 'a.b' : { $or : [ { 'y' : { $exists : true } },
                                           { 'z' : { $exists : true } } ] } } } );

assert.eq( [ { x : 1 }, { x : 2 } ], t.findOne().a.b );