sql >> Databasteknik >  >> NoSQL >> MongoDB

mongoDB - medelvärde för matrisvärden

Positionsbeteckning i aggregering verkar fortfarande inte stöds, kolla in den här biljetten .

Som @Sammaye säger måste du antingen varva ner matrisen först eller byta ut din koordinatmatris med en inbäddad lng /lat inbäddat dokument, vilket skulle göra detta trivialt.

Med tanke på arraystrukturen kan du varva ner och projicera lat/lng så här:

myColl.aggregate([
 // unwind the coordinates into separate docs
 {$unwind: "$myCoordinates"},

 // group back into single docs, projecting the first and last
 // coordinates as lng and lat, respectively
 {$group: {
   _id: "$_id",
   lng: {$first: "$myCoordinates"},
   lat: {$last: "$myCoordinates"}
 }},

 // then group as normal for the averaging
 {$group: {
   _id: 0,
   lngAvg: {$avg: "$lng"},
   latAvg: {$avg: "$lat"}
 }}
]);



  1. Många fält i Django mongomotordokument

  2. hur man lägger till ng-modell i dynamiskt skapade textfält

  3. Hur man använder aggregrate i mongodb till $match _id

  4. Omvänd ordning på objekt som hämtas från databasen i ng-repeat