22 lines
857 B
JavaScript
22 lines
857 B
JavaScript
// Test the use of $each in $addToSet
|
|
|
|
const t = db[jsTestName()];
|
|
t.drop();
|
|
|
|
assert.commandWorked(t.insert({_id: 1}));
|
|
|
|
assert.commandWorked(t.update({_id: 1}, {$addToSet: {a: {$each: [6, 5, 4]}}}));
|
|
assert.eq(t.findOne(), {_id: 1, a: [6, 5, 4]}, "A1");
|
|
|
|
assert.commandWorked(t.update({_id: 1}, {$addToSet: {a: {$each: [3, 2, 1]}}}));
|
|
assert.eq(t.findOne(), {_id: 1, a: [6, 5, 4, 3, 2, 1]}, "A2");
|
|
|
|
assert.commandWorked(t.update({_id: 1}, {$addToSet: {a: {$each: [4, 7, 9, 2]}}}));
|
|
assert.eq(t.findOne(), {_id: 1, a: [6, 5, 4, 3, 2, 1, 7, 9]}, "A3");
|
|
|
|
assert.commandWorked(t.update({_id: 1}, {$addToSet: {a: {$each: [12, 13, 12]}}}));
|
|
assert.eq(t.findOne(), {_id: 1, a: [6, 5, 4, 3, 2, 1, 7, 9, 12, 13]}, "A4");
|
|
|
|
assert.writeError(t.update({_id: 1}, {$addToSet: {a: {$each: 0}}}));
|
|
assert.writeError(t.update({_id: 1}, {$addToSet: {a: {$each: {a: 1}}}}));
|