sql >> Database teknologi >  >> NoSQL >> MongoDB

Mongodb:sorter dokumenter efter array-objekter

Det ser ud til, at mongo kan gør dette.

For eksempel, hvis jeg har følgende dokumenter:

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

Og kør følgende:

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

Som du kan se, sorteres efter {"a.b.c":1} tager min. af alle værdier i arrayet og sorterer på det, mens sorteringen efter {"a.b.c":-1} tager max af alle værdierne.



  1. Kan ikke oprette forbindelse til lokal (løbende) mongo ved hjælp af 'meteor mongo'

  2. Hvordan bruger man updateOption med arrayFilters i spring-data mongodb?

  3. Mongodb $push i indlejret array

  4. MongoDB:Eksistensen af ​​en indlejret nøgle