Ich verwende MongoDB 1.6.3, um eine große Sammlung (300k + Datensätze) zu speichern. Ich habe einen zusammengesetzten Index hinzugefügt.MongoDB - zu viele Daten für sort() ohne Indexfehler
db['collection_name'].getIndexes()
[
{
"name" : "_id_",
"ns" : "db_name.event_logs",
"key" : {
"_id" : 1
}
},
{
"key" : {
"updated_at.t" : -1,
"community_id" : 1
},
"ns" : "db_name.event_logs",
"background" : true,
"name" : "updated_at.t_-1_community_id_1"
}
]
aber wenn ich versuche, diesen Code auszuführen:
db['collection_name']
.find({:community_id => 1})
.sort(['updated_at.t', -1])
.skip(@skip)
.limit(@limit)
Ich erhalte:
Mongo :: OperationFailure (zu viele Daten für sort() ohne Index Fügen Sie einen Index hinzu oder geben Sie eine kleinere Grenze an.
Was mache ich falsch?
Die Sortierspalte muss die letzte Spalte im Index sein. http://www.mongodb.org/display/DOCS/Indexing+Advice+and+FAQ#IndexingAdviceandFAQ-1.TheortcolumnmussdieletzteSpalte, die imIndexenthaltenwurde. –