Я пытаюсь обновить один из моих документов, хранящихся на сервере mongoose, используя findOneAndUpdate
.Я установил его как запрос PUT, и именно так я его и определил.
public updateConfigWithType(req: Request, res: Response) {
configs.findOneAndUpdate({'companyInfo.uniquecompanyid': req.params.id}, { $set: { companyName: "ITSWORKING" }} ,(err,doc) => {
if (err) {
res.send(err);
}else {
res.json({
message: 'Succesfully updated this item'
});
}
})
}
URL-адрес моего запроса PUT настроен следующим образом: http://localhost:3000/parserConfig/123123wfdwedfwfwefwef
Это небольшой фрагмент данных JSON, которые выходят из моих документов на моем сервере mongoose:
{
"_id": {
"$oid": "5bbf27ad4cf8a6be65ea6257"
},
"companyInfo": {
"companyName": "example",
"hashKey": "sdfsdf",
"hashFunction": "sdfsdf",
"uniquecompanyid": "123123wfdwedfwfwefwef"
},
"version": "1",
"__v": 0,
"parserConfig": {
"id": {
"fieldName": "key",
"path": "key"
},
Итак, я хочу иметь возможность найти нужный документ по уникальному compnayid, который находится в URL, и я специально хочу ОБНОВИТЬ поле parserConfig
с тем, что существует в req.body
.На данный момент я жестко запрограммировал все для целей тестирования. Отправка запроса PUT в настоящее время дает мне ответ в Почтальоне:
{"message":"Succesfully updated this item"}
Но ничего не было обновлено.Чего мне не хватает?
Обновление
Я изменил код для целей тестирования ... Вот что я попробовал:
public updateConfigWithType(req: Request, res: Response) {
var query = {'companyInfo.uniquecompanyid':req.params.id};
configs.findOneAndUpdate(query, {$set:{'companyInfo.uniquecompanyid':"heheheheh"}}, {new:true}, function(err, doc){
if (err) {
return res.send(err);
}
return res.send(doc);
});
}
Ответ почтальона - СТАРЫЙ документ.Ничего не изменилось
ОБНОВЛЕНИЕ после запроса Spyros
10:26:34 PM web.1 | Mongoose: configs.findOne({ 'companyInfo.uniquecompanyid': '123123wfdwedfwfwefwef' }, { new: true, projection: {} })
10:26:34 PM web.1 | PUT /parserConfig/123123wfdwedfwfwefwef 200 158.118 ms - 2089
ОБНОВЛЕНИЕ нового информационного уведомления
Я сталкивался с этим:https://github.com/Automattic/mongoose/issues/7011
где написано:
Я заметил, что при вызове findOneAndUpdate со свойством update документа, которого нет в схеме, выходные данные отладки показывают (неправильно)?Метод сбора.
Зачем обновлять то же свойство через Studio 3t, а не через мой код?