summaryrefslogtreecommitdiff
path: root/jstests/core/unset2.js
blob: ec2772af5070ca7e361ffc7e766562e1f3e01e95 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var res;

t = db.unset2;
t.drop();

t.save({a: ["a", "b", "c", "d"]});
t.update({}, {$unset: {"a.3": 1}});
assert.eq(["a", "b", "c", null], t.findOne().a);
t.update({}, {$unset: {"a.1": 1}});
assert.eq(["a", null, "c", null], t.findOne().a);
t.update({}, {$unset: {"a.0": 1}});
assert.eq([null, null, "c", null], t.findOne().a);
t.update({}, {$unset: {"a.4": 1}});
assert.eq([null, null, "c", null], t.findOne().a);  // no change

t.drop();
t.save({a: ["a", "b", "c", "d", "e"]});
t.update({}, {$unset: {"a.2": 1}, $set: {"a.3": 3, "a.4": 4, "a.5": 5}});
assert.eq(["a", "b", null, 3, 4, 5], t.findOne().a);

t.drop();
t.save({a: ["a", "b", "c", "d", "e"]});
res = t.update({}, {$unset: {"a.2": 1}, $set: {"a.2": 4}});
assert.writeError(res);
assert.eq(["a", "b", "c", "d", "e"], t.findOne().a);