Агрегация RestHeart

Я пытаюсь научиться использовать restHeart rest api и посмотреть, смогу ли я избежать какого-либо пользовательского кода, чтобы написать любой код Java для запроса MongoDB.

Я пытаюсь выполнить ниже mongoshell запрос, любая идея, как это должно быть написано в запросе RestHeart?

db.getCollection('InsStatData').aggregate({'$match':{'$and':[{ 'sectionName': 'ASSETS'},{'year':2015},{ 'sections.data.rowIdx': 1},{'sections.data.values.colIdx':2}]}},
 { '$unwind': '$sections' },
 { '$unwind': '$sections.data' },
 { '$unwind': '$sections.data.values' },
 {'$match':{'$and':[{ 'sectionName': 'ASSETS'},{'year':2015},{ 
 'sections.data.rowIdx': 1},{'sections.data.values.colIdx':2}]}}
 )

InsStatData является коллекционным именем.

1 ответ

Решение

Да RESTHeart поддерживает агрегации.

По сути, вы можете определить агрегацию, создавая документ с конвейерами агрегации в нем в ресурсе /db/coll/_aggrs.

У документа агрегации есть свойство uri, которое делает его доступным в /db/coll/_aggrs /uri

Агрегация также может содержать переменные в виде {"$var": "n"} и переменная может быть передана следующим образом

GET /db/coll/_aggrs/<uri>=avars={"n": { <any json> }}

Обратитесь к этой странице документации для получения дополнительной информации https://softinstigate.atlassian.net/wiki/x/AwDw

Другие вопросы по тегам