Задать вопрос
AnimeFlame
@AnimeFlame
JavaScript developer

Как редактировать свойство объекта в массиве?

Мне нужно редактировать строку, которая находится в объекте, который находится в массиве.
Использую mongoose и javascript.

У меня есть массив Users, в котором находится 2 объекта:

Необходимо искать значение Users.Depost исходя из ID пользователя и изменять его

"Users": [{
        "Id": "808656561244995655",
        "Rank": "owner",
        "Deposit": 0,
        "Joined": 1642435574167
    }, {
        "Id": "905432168950538282",
        "Rank": "mod",
        "Deposit": 0,
        "Joined": 1642435574167
    }],

Использую я подобную работу с mongodb, при попытке отфильтровать значение docs.Users и изменить его с сохранением в базе данных, ничего не меняет и ошибок не выдаёт.

guildDb.findOne({ GuildId: guild.id, GuildOwner: status.ownerId }, async (err, docs) => {
   if (err) throw err
   if (!docs) return

   docs.Users.find(x => x.id === user.id).Deposit += +500
   await docs.save().catch(error => console.log(error)
})
  • Вопрос задан
  • 135 просмотров
Подписаться 1 Средний 3 комментария
Решения вопроса 1
Пригласить эксперта
Ответы на вопрос 1
Grapeoff
@Grapeoff
В чём концепция...?
Мне кажется, вам стоит посмотреть в сторону populate и lookup и не хранить объекты в массиве, а вынести их в отдельную коллекцию. Так будет куда удобнее управлять ими.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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