MongoDb содержит следующий набор данных
[{"user": "a", "domain": "some.com"},
{"user": "b", "domain": "some.com"},
{"user": "b1", "domain": "some.com"},
{"user": "c", "domain": "test.com"},
{"user": "d", "domain": "work.com"},
{"user": "aaa", "domain": "work.com"},
{"user": "some user", "domain": "work.com"} ]
Мне нужно выбрать первые элементы, отфильтрованные по домену, не более 2 одинаковых доменов в результате. После mon go результат запроса должен выглядеть следующим образом:
[{"user": "a", "domain": "some.com"},
{"user": "b", "domain": "some.com"},
{"user": "c", "domain": "test.com"},
{"user": "d", "domain": "work.com"},
{"user": "aaa", "domain": "work.com"}]
Всего 2 результата с одним доменом, остальные с теми же доменами должны быть пропущены. Возможно ли это сделать с $ aggregation, $ filter или чем-то еще?
Можно ли группировать по доменам и получать только первые N (2 в примере) пользовательских данных? Пример:
[{"domain": "some.com", "users": [a, b]}]
, поэтому
{"user": "b1", "domain": "some.com"} will be skip