У меня есть React-redux-форма для добавления мест пользователю.Данные отправляются с помощью axios, а полученное обновление записывается в консоль.
export const savePlaceToUser = (place, user) => async dispatch => {
let saved = {};
saved.userId = user._id;
saved.placeId = place._id
const res = await axios.put('/api/place/save', saved);
console.log(res.data.savedPlace);
}
Экспресс-маршрут JS выглядит следующим образом.
const mongoose = require('mongoose');
const User = mongoose.model('users');
app.put('/api/place/save', (req, res)=>{
User.findByIdAndUpdate(req.body.userId, {
"$addToSet" : { savedPlace: req.body.placeId}
}, (err, user)=>{
err ? res.send(err) : res.send(user)
})
})
А вот и пользовательская модель.
const mongoose = require('mongoose');
const userSchema = new mongoose.Schema({
googleId:String,
userName:String,
userDp:String,
savedPlace: [{ type: mongoose.Schema.Types.ObjectId, ref: "Place" }]
});
mongoose.model('users', userSchema);
При первой отправке сохраненный_пакет без обновления.При втором отправлении массив обновляется.