#mongodb #mongoose
#mongodb #мангуст
Вопрос:
Я пытаюсь добавить новые поля в этот массив и просто обновить их, когда они уже существуют, но мне не удается заставить его работать. Я пробовал многое, но последний метод, который я пробовал, — это тот, что ниже, вот так хорошо… это не работает. Кто-нибудь может мне помочь, пожалуйста?
if (req.method === 'PATCH') { const { title, description, socials } = req.body; const { name, link } = socials; try { const user = await User.findOneAndUpdate( { email: process.env.EMAIL_USERNAME, }, { title, description, $set: { socials: { name, link }, }, } ); res.status(200).json({ status: 'success', title, description, socials, }); user.save();
Комментарии:
1. Может
$set: { socials: {name: 'Facebook', link: 'http://facebook.com'} }
быть ?2. Можете ли вы подробнее объяснить, как выглядит массив? И вы обновляете по электронной почте, названию и описанию фильтров?
3. @WernfriedDomscheit Я думаю, что это работает, но теперь у меня другая проблема. Я получаю массив объектов из интерфейса, и мне нужно проверить, существует ли каждый объект уже, и если да, обновите его. В противном случае создайте его и все равно не сможете управлять
4. @fractal397 Я понял, что неправильно фильтрую, и исправил это. Сейчас я обновлю главный пост, массив, который я получаю с переднего конца, выглядит так
[ { name: 'Facebooasdask', link: 'http://12312312' }, { name: 'github', link: 'http://12asdasda2' }, { name: 'linkedin', link: 'http://aaaaa' } ]
5. поэтому я думаю, что на данный момент мне просто нужно выяснить, как перебирать массив, который я получаю с помощью $set, и это должно быть нормально