Я пытаюсь запросить сбор данных, чтобы вернуть только один объект из массива объектов, используя elemMatch.У меня есть эти данные:
[
{
"_id": "5ba10e24e1e9f4062801ddeb",
"user": {
"_id": "5b9b9097650c3414ac96bacc",
"firstName": "blah",
"lastName": "blah blah",
"email": "blah@gmail.com"
},
"appointments": [
{
"date": "2018-09-18T14:39:36.949Z",
"_id": "5ba10e28e1e9f4062801dded",
"treatment": "LVL",
"cost": 30
},
{
"date": "2018-09-18T14:39:32.314Z",
"_id": "5ba10e24e1e9f4062801ddec",
"treatment": "LVL",
"cost": 30
}
],
"__v": 1
}
]
Мне нужно запросить базу данных и вытащить только одну встречу в зависимости от идентификатора, переданного в params.Я использую код ниже, основанный на документах здесь .
router.get(
"/booked/:app_id",
passport.authenticate("jwt", { session: false }),
(req, res) => {
Appointment.find()
.elemMatch("appointments", { id: req.params.app_id })
.then(app => res.json(app));
}
);
Это возвращает пустой массив, хотя, когда я тестирую с почтальоном.Это первый раз, когда я использовал node.js и mongoDB, поэтому любая помощь будет принята с благодарностью.Спасибо.