Некоторые документы MongoDB больше не обновляются - PullRequest
0 голосов
/ 18 апреля 2020

Итак, я понятия не имею, что происходит.

У меня есть приложение nodeJS, которое использует mon goose для связи с моим mongodb.

У меня есть эта функция, который ищет пользователя по его имени и изменяет его свойство ownerName (просто для иллюстрации, моя реальная функция отличается, но и здесь можно найти ошибку.

await User.findOne({ username: '468432182' })
.then(snapshot => {
  console.log('| OwnerName before')
  console.log(snapshot.ownerName)

  snapshot.ownerName = 'something'
  console.log('| OwnerName after')
  console.log(snapshot.ownerName)

  snapshot.markModified('ownerName')

  snapshot.save(function (err) {
    if(err) {
      console.log(err)
    }
  })
}).catch(err => {
  console.log(err)
})

Если я пытаюсь изменить ownerName из этого сделать c, он просто не изменится, этот первый файл console.log (ранее OwnerName) показывает имя в документе, которое называется «Claud», но затем, второе, после (OwnerName) все еще показывает его , оно не меняется на «что-то».

У меня буквально нет идей, почему это происходит, и это не для всех документов, только для этого (который я знаю)

Кто-нибудь может спасти меня? Я ничего не могу найти в Интернете и не знаю, что еще я могу сделать.

1 Ответ

0 голосов
/ 20 апреля 2020

Вы пытаетесь обновить документ, используя функцию запроса findOne, которая, конечно, не будет работать.

Вместо этого следует использовать функцию запроса uodateOne.

await User.updateOne({isername:'112233545'}, { ownerName:'someone' }); 

Вы можете читайте больше в моем взгляде на Пн goose до c.

https://mongoosejs.com/docs/documents.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...