sql >> Database >  >> NoSQL >> MongoDB

Mongodb:documenten sorteren op array-objecten

Het lijkt erop dat mongo kan doe dit.

Als ik bijvoorbeeld de volgende documenten heb:

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

En voer het volgende uit:

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

Zoals u kunt zien, sorteert u op {"a.b.c":1} duurt de min van alle waarden in de array en sorteert daarop, terwijl de sortering op {"a.b.c":-1} neemt de max van alle waarden.



  1. Voeg optionele queryparameter toe met behulp van spring data mongodb-repository

  2. Hoe diep geneste array bij te werken met C# MongoDB.Driver?

  3. [Fout:kan geen verbinding maken met [localhost:27017]] van NodeJS naar mongodb

  4. MongoDB Update array-element (document met een sleutel) indien aanwezig, anders push