Почему mongoose игнорирует "commentId" в массиве документ.comments?

У меня есть код:

const taskId: number = req.body.taskId;
const text: string = req.body.text;

const task = await db.tasks.findOneAndUpdate(
  { taskId },
  { $push: { comments: [{
        commentId: await db.getId(`task.${taskId}.commentId`),
        taskId,
        // @ts-ignore
        author: Number(req.session.userId),
        text,
        timestamp: Date.now()
      }] } }
).catch(e => {
  console.error(e);
  return res.status(400).json({ errors: [{ msg: "UNKNOWN_ERROR" }] });
});

if (!task) return res.json({ errors: [{ location: "query", msg: "NOT_FOUND", param: "taskId" }] });

return res.json(task);

Но на ответе я получаю (скипнул ненужное):

{
  ...,
  comments: [{
    "timestamp": 1595833609905,
    "_id": "5f1e7d09c1e15d4c8e0b71fa",
    "taskId": 2,
    "author": 435214391,
    "text": "haha test comment"
  }]
}

То есть, в комментарии нет "commentId", он просто undefined! Для проверки сделал лог:

console.log({
        commentId: await db.getId(`task.${taskId}.commentId`),
        taskId,
        // @ts-ignore
        author: Number(req.session.userId),
        text,
        timestamp: Date.now()
})

И тут всё ок.. Почему же "commentId" не сохраняется в массиве из документа?


Ответы (1 шт):

Автор решения: Nikita

Итак, это победа. Все дело оказалось в импортах:

import TaskResponseSchema from './TaskResponse';
import TaskCommentSchema from './TaskResponse';

Хотя должно быть так:

import TaskResponseSchema from './TaskResponse';
import TaskCommentSchema from './TaskComment';
→ Ссылка