Запрос MongoDB с мангуозом - соответствующий атрибут подразделений в массивеJavascript

Форум по Javascript
Ответить
Anonymous
 Запрос MongoDB с мангуозом - соответствующий атрибут подразделений в массиве

Сообщение Anonymous »

Я пытаюсь решить проблему с форматом документов в монгодб, изображенном ниже.{
"_id": {
"$oid": "68dc4f78e11553b3647231e2"
},
"name": "Dutch Bros",
"address": "25 Down Street, Salt Lake City, UT",
"facilities": [
"Hot drinks",
"Food"
],
"coords": [
-0.9690884,
51.455041
],
"reviews": [
{
"author": "John Smith",
"rating": {
"$numberDecimal": "5"
},
"createdOn": {
"$date": "2025-09-30T06:00:00.000Z"
},
"reviewText": "Great Place. Would come back again!"
},
{
"author": "Jane Doe",
"rating": {
"$numberDecimal": "4"
},
"createdOn": {
"$date": "2025-09-30T06:00:00.000Z"
},
"reviewText": "Okay Place. Would come back again!"
}
]
}
< /code>
Моя цель состоит в том, чтобы соответствовать обзору субдокументию (ы) на основе атрибута, который он имеет, такие как рейтинги, равные пяти. Я знаю, что я мог бы взять массив отзывов в целом и повторить их, чтобы найти атрибуты для того, что мне нужно, но я хочу иметь возможность найти его непосредственно в запросе MongoDB, чтобы сервер MongoDB выполнял работу, пока он сохраняет мой экспресс -сервер. Я надеюсь, что это было достаточно ясно, и я прошу прощения, если это не так! Я также пытался использовать метод .get () на возвращенном массиве, потому что я видел, что это был доступный метод для объекта, но это дало ошибку. Я также пытался построить запрос, который был близок к тому, что, я считаю, решение будет, но я не могу понять, как элемент MongoDB соответствует элементу массива, см. Ниже для моей неудачной попытки.const monReview = await Loc
.findById(req.params.locationid)
.select('name reviews')
.where('reviews')
.elemMatch({$eq: req.params.reviewRating})
.exec();


Подробнее здесь: https://stackoverflow.com/questions/797 ... n-an-array
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»