Я думаю, вы можете сделать это следующим образом:
db.data.update(
{uid:1212},
db.data.findOne({uid:1212}, {outbox: {$slice: [2,2]}, uid: 1, _id: 0 })
);
Это фактически заменит всю запись новыми данными, поэтому вам нужно быть немного осторожнее с ней.Вам нужно знать длину массива исходящих, чтобы получить правильные числа.То есть опция $ slice пропустит 2 записи, а затем вернет следующие две записи в этом случае.Кажется, не существует способа пропустить два, а затем вернуть оставшиеся элементы.
Первая часть, {uid: 1212} ограничивает операцию этим единственным документом, а вторая часть возвращает узел, нос подмножеством этих элементов массива, и используется в качестве данных для обновления.
Больше информации о ломтике $ здесь: http://www.mongodb.org/display/DOCS/Retrieving+a+Subset+of+Fields#RetrievingaSubsetofFields-RetrievingaSubrangeofArrayElements
Будет ли это работать для вас?