MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mongodb :trier les documents par objets de tableau

Il semble que mongo peut faites ceci.

Par exemple, si j'ai les documents suivants :

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

Et exécutez ce qui suit :

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 } ] } }

Comme vous pouvez le voir, le tri par {"a.b.c":1} prend min de toutes les valeurs du tableau et les trie sur celui-ci, alors que le tri par {"a.b.c":-1} prend le max de toutes les valeurs.