Есть несколько вопросов по этому поводу, но я пока не могу найти решение, которое, похоже, является приемлемым подходом на данный момент.
Я пытаюсь обновить документ в MongoDB, и я использую Mongoosejs для этого. Однако я получаю эту ошибку:
{ [MongoError: Mod on _id not allowed]
name: 'MongoError',
lastErrorObject:
{ err: 'Mod on _id not allowed',
code: 10148,
n: 0,
connectionId: 35,
ok: 1 },
ok: 0,
errmsg: 'Mod on _id not allowed' }
Код, который я использую для создания обновления:
app.put('/task/:short', auth, function (req, res) {
Task.findOneAndUpdate({short:req.params.short}, req.body, function(err, task) {
if(err) console.log(err);
res.json(200, {content: task});
})
});
потому что у меня было поле "short_id", я подумал, что это может быть проблема с наличием "_id" части имени поля, поэтому я изменил его на "короткий", но все равно не повезло - я получаю ту же ошибку, Позднее я обнаружил, что он думает, что я пытаюсь изменить поле _id, но не знаю почему.