partyzanx
@partyzanx

Как обновить updateMany с использованием собственных свойств каждого объекта?

Работаю с Mongoose

Есть коллекция с документами такого типа
5ed1a61db7bd0250285362.png
Задача: в каждом документе из strokeNamesString сделать strokeNamesArr с помощью операции
strokeNamesArr = strokeNamesString.split('\n').map(e => JSON.parse(e))

Код работает если я по отдельности каждый сохраняю, но документов много чтобы их вручную каждый сохранять, вот такой код не сработает
await Char.updateMany({},{strokeNamesArr: this.strokeNamesString.split('\n').map(e => JSON.parse(e))});

Потому что не извлекается this.strokeNamesString

Как мне извлечь this.strokeNamesString или есть другой способ массовой записи свойств в зависимости от других свойств?
Как мне обратиться к текущему изменяемому документу во время работы updateMany?
  • Вопрос задан
  • 95 просмотров
Пригласить эксперта
Ответы на вопрос 1
Robur
@Robur
Знаю больше чем это необходимо
this.strokeNamesString у вас не имеет никакого отношения к модели, а к той функции в которой вы вызываете await Char.updateMany.

Нельзя использовать в update функцию JS которая будет применена к каждой записи, вместо этого вы можете использовать pipeline, и какое-то выражение для $set, если там есть нужный вам функционал.
https://docs.mongodb.com/manual/reference/method/d...

Если нет - то обновлять по одному.
либо через bulkWrite - готовите сразу все данные и отправляете пачкой одной операцией.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы