Twój indeks faktycznie powinien zależeć od tego, jak wygląda Twoje zapytanie. Załóżmy, że zapytanie dotyczące wiadomości wygląda tak:
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});
Następnie musisz zbudować indeks w kolekcji Message specjalnie dla tego zapytania. W tym przypadku:
db.Message.createIndex({_p_chatRoom:1, _p_user:1, isSeen: -1, _created_at: -1})
Alternatywnie, indeks z samym pokojem rozmów będzie działał znacznie lepiej niż brak indeksu w ogóle
db.Message.createIndex({_p_chatRoom:1})
Aby naprawdę zrozumieć, które indeksy należy zbudować, musisz przeczytać dokumentację Mongo https://docs.mongodb.com/manual/reference/method/db.collection.createIndex/#db.collection.createIndex
Osobiście używam MLab do mojej Parse MongoDB, ponieważ nie znam się zbyt dobrze na bazach danych, a w rzeczywistości mają powolny analizator zapytań, który zaleca indeksy oparte na typowych zapytaniach w twojej aplikacji, więc jeśli nie chcesz uczyć się drobniejszych punktów indeksowania MongoDB, to MLab jest świetnym miejscem do rozpoczęcia