Мангуст, чтобы вернуть только совпадающий объект/предмет

#mongodb #express #mongoose #mongodb-query #mongoose-schema

Вопрос:

Я пытаюсь извлечь только соответствующий объект из запроса мангуста. Я пробовал разные подходы, но все равно не могу этого сделать.

Ответьте прямо сейчас:

 [
    {
        "_id": "61ac08008c3d6ad03a20c8f7",
        "pages": [
            {
                "_id": "61ac1dcf45b78934dca130c4",
                "page_number": "2",
                "page_content": "Rasdsa"
            }
        ]
    }
]
 

Ожидаемый Ответ:

         "pages": [
            {
                "_id": "61ac1dcf45b78934dca130c4",
                "page_number": "2",
                "page_content": "Rasdsa"
            }
        ]
 

Будет лучше, если мы получим только объект размотки из запроса.

Текущий запрос

 await BooksModel.find( { book_id:"2"},{ pages: { $elemMatch: { page_number: "2" } }}, {"$project": {"pages":"1"}}).exec();
 

Ответ №1:

Вы можете исключить _id это, указав 0 в качестве значения на этапе проекта.

Нравится:

 await BooksModel.find( { book_id:"2"},{ pages: { $elemMatch: { page_number: "2" } }}, {"$project": {"pages":"1", "_id": "0"}}).exec();