2018-04-06 10:33:03 -04:00
|
|
|
// @tags: [requires_non_retryable_writes, requires_fastcount]
|
2017-11-28 10:10:44 -05:00
|
|
|
|
2017-10-03 17:10:50 -04:00
|
|
|
(function() {
|
2019-07-26 18:20:35 -04:00
|
|
|
"use strict";
|
2011-01-21 02:51:21 -05:00
|
|
|
|
2019-07-26 18:20:35 -04:00
|
|
|
const coll = db.remove_undefined;
|
|
|
|
|
coll.drop();
|
2011-01-21 02:51:21 -05:00
|
|
|
|
2019-08-14 13:52:59 +00:00
|
|
|
assert.commandWorked(coll.insert({_id: 1}));
|
|
|
|
|
assert.commandWorked(coll.insert({_id: 2}));
|
|
|
|
|
assert.commandWorked(coll.insert({_id: null}));
|
2016-03-09 12:17:50 -05:00
|
|
|
|
2019-07-26 18:20:35 -04:00
|
|
|
const obj = {
|
|
|
|
|
foo: 1,
|
|
|
|
|
nullElem: null
|
|
|
|
|
};
|
2016-03-09 12:17:50 -05:00
|
|
|
|
2019-07-26 18:20:35 -04:00
|
|
|
coll.remove({x: obj.bar});
|
|
|
|
|
assert.eq(3, coll.count());
|
2016-03-09 12:17:50 -05:00
|
|
|
|
2019-07-26 18:20:35 -04:00
|
|
|
coll.remove({x: undefined});
|
|
|
|
|
assert.eq(3, coll.count());
|
2016-03-09 12:17:50 -05:00
|
|
|
|
2019-07-26 18:20:35 -04:00
|
|
|
assert.writeErrorWithCode(coll.remove({_id: obj.bar}), ErrorCodes.BadValue);
|
|
|
|
|
assert.writeErrorWithCode(coll.remove({_id: undefined}), ErrorCodes.BadValue);
|
2016-03-09 12:17:50 -05:00
|
|
|
|
2019-07-26 18:20:35 -04:00
|
|
|
coll.remove({_id: obj.nullElem});
|
|
|
|
|
assert.eq(2, coll.count());
|
2016-03-09 12:17:50 -05:00
|
|
|
|
2019-08-14 13:52:59 +00:00
|
|
|
assert.commandWorked(coll.insert({_id: null}));
|
2019-07-26 18:20:35 -04:00
|
|
|
assert.eq(3, coll.count());
|
2016-03-09 12:17:50 -05:00
|
|
|
|
2019-07-26 18:20:35 -04:00
|
|
|
assert.writeErrorWithCode(coll.remove({_id: undefined}), ErrorCodes.BadValue);
|
|
|
|
|
assert.eq(3, coll.count());
|
2017-10-03 17:10:50 -04:00
|
|
|
})();
|