sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongodb:sortera dokument efter arrayobjekt

Det verkar som att mongo kan gör det här.

Till exempel, om jag har följande dokument:

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

Och kör följande:

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 sorteras efter {"a.b.c":1} tar min av alla värden i arrayen och sorterar på det, medan sorteringen efter {"a.b.c":-1} tar max av alla värden.



  1. Hur man returnerar underdokument från ett objekt i en array med Meteor och MongoDB

  2. mongodb mongoTemplate får distinkt fält med några kriterier

  3. Tillstånd nekad när 'mongod'-kommandot körs efter lyckad installation

  4. MongoDB i Go (golang) med mgo:hur använder man logiska operatorer för att fråga?