Post APMicFmsT4vm4oJT04 by dikey0ficial@lor.sh
(DIR) More posts by dikey0ficial@lor.sh
(DIR) Post #APMicF2nEQ4FlskfAW by sattellite@mastodon.ml
2022-11-07T15:35:05Z
0 likes, 0 repeats
Не ожидал, что работа с #mongodb будет на столько неподвластной моему мозгу. Я в монге решил поправить значение одного поля в массиве объектов. И сломал в принципе структуру данных. Я не обновил поле, а заменил содержимое объектов в массиве. И я так и не понял как корректно поменять эти данные запросом. Оказалось проще подключиться с помощью Compas и поправить мышкой. Я, кажется, безнадежен.
(DIR) Post #APMicFmsT4vm4oJT04 by dikey0ficial@lor.sh
2022-11-07T15:43:22Z
0 likes, 0 repeats
@sattellite можешь написать запрос, поломавший структуру?)
(DIR) Post #APMicGD6tXulOAaPtA by sattellite@mastodon.ml
2022-11-07T15:46:44Z
0 likes, 0 repeats
@dikey0ficial точно уже не сделаю его. Но что-то очень похожее: db.user.updateMany({}, {$set:{"work.$[]":{id:""}})В итоге внутри массива work остался один объект, в котором было только поле id. Я вычитал, что там надо было как-то через $map что-то делать. Еще видел такое "work.$[id]" (не сработало) и "work.$[].id" (ошибка синтаксиса)
(DIR) Post #APMicH1RsOBFuI8cLo by dside@mastodon.ml
2022-11-07T16:08:43Z
0 likes, 0 repeats
@sattellite > "work.$[].id" (ошибка синтаксиса)Это странно: https://www.mongodb.com/docs/manual/reference/operator/update/positional-all/#update-all-documents-in-an-array…если желалось сделать все поля id в объектах внутри массива пустыми строками, то это, вроде бы, именно то, что надо."work.$[id]" означает другое, да; это для того, чтобы воздействовать только на некоторые элементы массива, только id тут запихнут на место названия фильтра, и его надо доопределять далее, чтобы он работал: https://www.mongodb.com/docs/manual/reference/operator/update/positional-filtered/#update-all-array-elements-that-match-arrayfilters@dikey0ficial
(DIR) Post #APMjZKjJjdZcUVoqVE by sattellite@mastodon.ml
2022-11-07T16:19:23Z
0 likes, 0 repeats
@dside @dikey0ficial спасибо . Я сейчас реально по памяти пишу. Может еще что-то упустил. Но все это было после того как данные сломал 😢