У нас массив со списком id чатов — 
[1, 2]Задача: из коллекции messages вытащить одно последнее сообщение в каждом чате.
Коллекция сообщений показана ниже.
created_at — время timestamp
[
  {
    chat_id: 1,
    text: '123',
    created_at: 1
  },
  {
    chat_id: 1,
    text: '123',
    created_at: 2
  },
  {
    chat_id: 1,
    text: '123',
    created_at: 3
  },
  {
    chat_id: 2,
    text: 'asd123',
    created_at: 1
  },
  {
    chat_id: 2,
    text: 'asd123',
    created_at: 3
  },
  {
    chat_id: 5,
    text: '123312',
    created_at: 1
  }
]
Запрос ниже не правильный, написал его чтобы была понятна суть.
db.message.find({chat_id: {$in: [1, 2]}}, {}, {
  sort: {created_at: -1},
  limit: 1
});
Такой должен быть результат:
[
  {
    chat_id: 1,
    text: '123',
    created_at: 3
  },
  {
    chat_id: 2,
    text: 'asd123',
    created_at: 3
  }
]
Прошу написать правильный запрос, чтобы я знал как это нужно делать.
И что будет, если у меня в коллекции messages будет 10 000 000 записей?