Sortierung auf mehrere Felder Mongo DB

Ich habe eine Abfrage in mongo so möchte ich den Vorzug geben, um den ersten Bereich und den zweiten Bereich.

Sagen, ich habe die Abfrage, so dass

db.col.find({category: A}).sort({updated: -1, rating: -1}).limit(10).explain()

So, ich habe die folgenden index -

db.col.ensureIndex({category: 1, rating: -1, updated: -1})

Funktionierte es nur zu einer Geldstrafe Scannen Sie so viele Objekte wie benötigt, d.h. 10

Aber jetzt brauche ich für die Abfrage

db.col.find({category: { $ne: A}}).sort({updated: -1, rating: -1}).limit(10)

So, ich habe die folgenden index -

 db.col.ensureIndex({rating: -1, updated: -1})

aber das führt das Scannen des gesamten Dokuments und wenn ich

 db.col.ensureIndex({ updated: -1 ,rating: -1})

Scannt es weniger Anzahl der Dokumente, die

Ich möchte nur Fragen, klar zu sein über die Sortierung nach mehreren Feldern und was ist die Reihenfolge, die erhalten werden, wenn dies zu tun. Durch das Lesen der mongo-DB-Dokumente klar, dass das Feld, auf dem wir brauchen, um die Sortierung sollte das Letzte Feld. Das ist also der Fall, dass ich angenommen in meinem $ne Abfrage vor. Mache ich etwas falsch?

InformationsquelleAutor der Frage Global Warrior | 2012-09-20

Schreibe einen Kommentar