summaryrefslogtreecommitdiff
path: root/jstests/unset.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/unset.js')
-rw-r--r--jstests/unset.js19
1 files changed, 19 insertions, 0 deletions
diff --git a/jstests/unset.js b/jstests/unset.js
new file mode 100644
index 00000000000..f3cdcf03deb
--- /dev/null
+++ b/jstests/unset.js
@@ -0,0 +1,19 @@
+t = db.unset;
+t.drop();
+
+orig = { _id : 1, emb : {} };
+t.insert(orig);
+
+t.update( { _id : 1 }, { $unset : { 'emb.a' : 1 }});
+t.update( { _id : 1 }, { $unset : { 'z' : 1 }});
+assert.eq( orig , t.findOne() , "A" );
+
+t.update( { _id : 1 }, { $set : { 'emb.a' : 1 }});
+t.update( { _id : 1 }, { $set : { 'z' : 1 }});
+
+t.update( { _id : 1 }, { $unset : { 'emb.a' : 1 }});
+t.update( { _id : 1 }, { $unset : { 'z' : 1 }});
+assert.eq( orig , t.findOne() , "B" ); // note that emb isn't removed
+
+t.update( { _id : 1 }, { $unset : { 'emb' : 1 }});
+assert.eq( {_id :1} , t.findOne() , "C" );