Итак, у меня есть массив объектов.Каждый является объектом со значением индекса.Когда я обновляю значение индекса на стороне клиента, чтобы сказать 0. Документ Монго со старым индексом обновляется с новым индексом 0, а другие документы получают этот индекс +1 - то же самое условие, что и в соединении.
По сути, сейчас я запрашиваю старый индекс и сохраняю идентификатор для последующего вызова.
Затем я обновляю все остальные индексы по одному.
Затем я устанавливаю старый идентификатор в новый индекс.Тем не менее, это не работает.Увеличивает все документы с «указателем» неправильно.Мне нужно, чтобы увеличить «индекс» от фактического значения newIndex ++ для каждого следующего документа.
Или ... если есть другой способ, который я не видел.
const {_id} = req.body.user;
const { oldIndex, newIndex } = req.body.data;
const keepIndex = await Tasks.find({_user: _id, index: oldIndex}).exec();
const saveID = keepIndex[0]._id;
let counter = newIndex;
const updateIndexId = await Tasks.updateMany({_user: _id, index: {$gte : newIndex} }, {$inc : {'index' : 1} })
.where('created_at')
.gt(moment().startOf('day'))
.lt(moment().endOf('day')).exec();
const finalUpdate = await Tasks.updateOne({_id: saveID }, { $set : {'index': newIndex}}).exec();