diff options
Diffstat (limited to 'jstests/core/pull_or.js')
-rw-r--r-- | jstests/core/pull_or.js | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/jstests/core/pull_or.js b/jstests/core/pull_or.js new file mode 100644 index 00000000000..905c7a87060 --- /dev/null +++ b/jstests/core/pull_or.js @@ -0,0 +1,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 ); |