summaryrefslogtreecommitdiff
path: root/jstests/core/pull_or.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/core/pull_or.js')
-rw-r--r--jstests/core/pull_or.js21
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 );