Я новичок в mongodb и mon goose.
У меня есть этот запрос, который отлично работает с почтальоном (обновить номер бронирования)
router.put("/book/:idEvent", (req, res) => {
const _idEvent = req.params.idEvent;
const places = req.body.places;
Event.findOneAndUpdate(
{ _id: _idEvent },
{
$set: { places },
},
{new:true, upsert:true},
)
.then((event) => res.json(event))
.catch((err) => res.json(err));
});
Но когда я вызываю это на стороне клиента он вставляет null в места атрибутов. Согласно документации mongodb, он не должен быть нулевым, когда upsert и новые свойства верны, я пробовал, но ничего не изменилось. Я попытался отправить аргументы stati c со стороны клиента, но он все равно возвращает null. мой метод внешнего интерфейса:
export const updatePlaces = (idEvent, updatedPlaces) => (dispatch) => {
axios
.put(`http://localhost:5000/events/book/${idEvent}`, updatedPlaces)
.then((res) => dispatch(getEvents()))
.catch((err) => console.log(err));
};
Я также узнал, что templateId отправляется через запрос Xhr со стороны клиента, а отправка информации с помощью Xhr (или любого запроса типа Ajax) преобразует все в строку ': поэтому я изменил тип атрибута в схеме с Number на String, но снова он возвращает null.
places: { type: String},
Есть идеи, как решить эту проблему ??