MongoDB Обновление логического внутреннего объекта

Я пытаюсь обновить логическое значение внутри объекта в моем боте discord.js v13, но он не обновляется, вот что я пробовал:

                    await guildSchema.findOneAndUpdate({
                        logging.enabled: true
                    })
                    await guildSchema.findOneAndUpdate({
                        logging.enabled = true
                    })

Но ни один из них, похоже, не обновляет его, вот скриншот дБ

Я также пробовал:

                    await guildSchema.findOneAndUpdate({
                        logging: {"enabled": true}
                    })

И это обновляет его, но также стирает все остальное

await guildSchema.findOneAndUpdate({<здесь укажите критерии>},{$set:{"logging.enabled": true})

nimrod serok 12.05.2022 21:38
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
0
1
28
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Your error is passing the update statement to the filter parameter.
Your query will find the first doc with { 'logging.enabled' : true }.
And don't update anything

const filter = { 'logging.enabled' : false};

const update = { 'logging.enabled' : true };

// `doc` is the document _before_ `update` was applied
let doc = await guildSchema.findOneAndUpdate(filter, update);
// doc.logging.enabled is false


// `doc` is the document _after_ `update` was applied because of
// `new: true`
let doc = await guildSchema.findOneAndUpdate(filter, update, {
  new: true
});
// doc.logging.enabled is true

Другие вопросы по теме