хорошо, поэтому я пытаюсь вернуть один объект, который хранится в массиве. я получаю информацию из БД с помощью req.params вот какой-то рабочий код:
router
.route("/book-review/:book")
.get((req, res) => {
return model.findById(req.user.id).select({
'posts': {
$elemMatch: {
"title": req.params.book
}
}
})
этот возвращает:
{
_id: 5ae1be4c48c5360c5457da48,
posts: [
{
i: 5ae21180bb811e1a453317f0,
title: 'cc',
chapters: []
}
]
}
это возвращает именно то, что я хочу, возвращает один объект, сохраненный в массиве записей, однако, поскольку URL (при использовании заголовка) может иметь то же значение, что и заголовок другого сообщения, это проблема, и я хочу использовать ObjectID (который у меня есть настройки)
router
.route("/book-review/:book")
.get((req, res) => {
return model.findById(req.user.id).select({
'posts': {
$elemMatch: {
"i": req.params.book
}
}
})
когда я изменяю его с "title" на "i" (это хранилище идентификатора отдельных сообщений), он возвращает совершенно другое значение, это возвращает только это:
{
_id: 5ae1be4c48c5360c5457da48
}
(это родительский ObjectId, как вы можете видеть выше при использовании заголовка)
Может кто-нибудь объяснить, что здесь происходит, и как я могу получить первый результат, не используя вместо него заголовок и идентификатор?