MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongodb:Dokumente nach Array-Objekten sortieren

Es scheint, dass Mongo kann tun Sie dies.

Zum Beispiel, wenn ich die folgenden Dokumente habe:

{ a:{ b:[ {c:1}, {c:5 } ] } }
{ a:{ b:[ {c:0}, {c:12} ] } }
{ a:{ b:[ {c:4}, {c:3 } ] } }
{ a:{ b:[ {c:1}, {c:9 } ] } }

Und führen Sie Folgendes aus:

db.collection.find({}).sort({ "a.b.c":1 });
// produces:
{ a:{ b:[ {c:0}, {c:12} ] } }
{ a:{ b:[ {c:1}, {c:5 } ] } }
{ a:{ b:[ {c:1}, {c:9 } ] } }
{ a:{ b:[ {c:4}, {c:3 } ] } }

db.collection.find({}).sort({ "a.b.c":-1 });
// produces:
{ a:{ b:[ {c:0}, {c:12} ] } }
{ a:{ b:[ {c:1}, {c:9 } ] } }
{ a:{ b:[ {c:1}, {c:5 } ] } }
{ a:{ b:[ {c:4}, {c:3 } ] } }

Wie Sie sehen können, ist die Sortierung nach {"a.b.c":1} dauert die min aller Werte im Array und sortiert danach, während die Sortierung nach {"a.b.c":-1} nimmt das Maximum aller Werte.