Существует эквивалент вставки с uniquness в атрибуте массива. Следующая команда, по существу, вставляет, сохраняя уникальность котят (upsert создает ее для вас, если объект с 123 еще не существует).
db.cats.update(
{ id: 123 },
{ $addToSet: {kittens: { $each: [ 456, 456] }}, $set: {'otherfields': 'extraval', "field2": "value2"}},
{ upsert: true}
)
Результирующее значение объекта будет
{
"id": 123,
"kittens": [456],
"otherfields": "extraval",
"field2": "value2"
}