MongoDB - запрос вывода изменений с использованием разных значений - PullRequest
0 голосов
/ 26 апреля 2018

хорошо, поэтому я пытаюсь вернуть один объект, который хранится в массиве. я получаю информацию из БД с помощью 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, как вы можете видеть выше при использовании заголовка)

Может кто-нибудь объяснить, что здесь происходит, и как я могу получить первый результат, не используя вместо него заголовок и идентификатор?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...