Как обновить детали в массиве поста в MongoDB? - PullRequest
0 голосов
/ 03 августа 2020

Хотя он печатает «успех» в консоли, но я не вижу изменений после нажатия на сообщение обновления.

User.update( { email:req.user.email }, 
  { $set: {
     "Addtasks.$[].topic": req.body.topic,
     "Addtasks.$[].words": req.body.words,
     "Addtasks.$[].keywords": req.body.keywords,
     "Addtasks.$[].website": req.body.website,
     "Addtasks.$[].otherdetails": req.body.otherdetails,
     "Addtasks.$[].exampleRadios": req.body.exampleRadios
} },function (error, success) {
  if (error) {
    console.log(error);
  } else {
    res.redirect('/status');
    console.log('success');
  }
} )

Мой json файл массива:

[
    {
        "Date" : "Mon Aug 03 2020 03:30:17 GMT+0530 (India Standard Time)",
        "exampleRadios" : "option1",
        "otherdetails" : "haha great!",
        "website" : "nmbn.com",
        "keywords" : "anxiety disorders for children, anxiety disorders for adults",
        "words" : 456,
        "topic" : "How to fight anxiety",
        "_id" : ObjectId("5f273771ddff850558b1e049")
    }
]

1 Ответ

0 голосов
/ 03 августа 2020

БД проверяли, обновляется ли? Поскольку, если вы используете собственный mongodriver, обновление не вернет сам документ, вам нужно использовать findOneAndUpdate. Во-вторых, findOneAndUpdate вернет не обновленный документ, а старый (не знаю, почему они настроили его таким образом), вы должны использовать options = { returnOriginal: false } (по умолчанию true).

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