Su índice en realidad debería depender de cómo se ve su consulta. Supongamos que la consulta de su mensaje se ve así:
var query = new Parse.Query("Message");
query.equalTo("chatRoom", aChatRoom);
query.equalTo("user", someUser);
query.equalTo("isSeen", false);
query.descending("createdAt");
query.find().then(function(results){//whatever});
Luego, deberá crear un índice en la colección de mensajes específicamente para esta consulta. En este caso:
db.Message.createIndex({_p_chatRoom:1, _p_user:1, isSeen: -1, _created_at: -1})
Alternativamente, un índice con solo la sala de chat funcionará mucho mejor que ningún índice
db.Message.createIndex({_p_chatRoom:1})
Para comprender realmente qué índices crear, deberá leer un poco los documentos de Mongo https://docs.mongodb.com/manual/reference/method/db.collection.createIndex/#db.collection.createIndex
Yo personalmente uso MLab para mi Parse MongoDB, porque no tengo mucho conocimiento sobre bases de datos, y en realidad tienen un analizador de consultas lento que recomienda índices basados en consultas comunes en su aplicación, así que si no quiere aprender los puntos más finos de la indexación de MongoDB, entonces MLab es un excelente lugar para comenzar