#mongodb #aggregation-framework
#mongodb #структура агрегации
Вопрос:
db={
setting: [
{
"_id": "5fce2865cf6b771054133981",
"files": [
{
"_id": "5fc09a5c1027307146d5ede5",
"imageUrl": "xyz.jpg",
"width": 375,
"height": 500,
"videoUrl": "video.mp4"
}
]
},
{
"_id": "5fcdcc60da26c80a6de06759",
"files": [
{
"_id": "5fc09a5c1027307146d5ede5",
"imageUrl": "xyz.jpg",
"width": 375,
"height": 500
}
]
},
{
"_id": "5fcdcc52da26c80a6de06758",
"files": []
}
]
}
db.setting.aggregate([
{
"$project": {
_id: 1,
files: 1
}
}
])
https://mongoplayground.net/p/KBOCksJ5xzu
интересно, как получить данные, если существует массив ImageUrl и videoURL.
Мне нужны отдельные данные, если я запрашиваю ImageUrl, он должен возвращать только те записи, в которых есть imageurl с некоторыми данными, если я запрашиваю videoURL, он должен возвращать, что записи состоят из videoURL
как этого добиться, пожалуйста, укажите
Спасибо
Комментарии:
1. неясный вопрос, вы хотите что-то вроде этой игровой площадки ?
2. @turivishal Спасибо за подсказку, это не происходит в моем сознании, спасибо
3. Не могли бы вы включить ожидаемый результат?
db.setting.find([ { "files.videoUrl": { $exists: true } } ])
это и его эквивалент ImageUrl будут возвращать только те, которые содержат поле в подобъектах files.