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