MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Posortuj tablicę w dokumencie za pomocą MongoDB

Widzę problem. Ludzie szukają i znajdują tę odpowiedź na przepełnienie stosu:

To źle, ponieważ nigdy nie „rekonstruuje” tablicy.

Robisz to za pomocą $group i $push , a ponieważ grupujesz, będziesz chciał $first dla innych pól w żądanym dokumencie:

db.TrafficStatistic.aggregate([
   { "$unwind": "$statistic" },
   { "$sort": { "_id": 1, "statistic.data.desktop.users": 1 } },
   { "$group": {
       "_id": "$_id",
       "monthStart" : { "$first": "$monthStart" },
       "monthEnd" : { "$first": "$monthEnd" },
       "date" : { "$first": "$date" },
       "statistic": { "$push": "$statistic" }
   }}
])

Zwróć także uwagę na $sort jest stosowany do obu "_id" a drugie pole do sortowania. Dzieje się tak dlatego, że sortowanie jest stosowane według dokumentu i jest ważne, gdy szczegóły dokumentu są umieszczane z powrotem w $group .

Teraz dokument wygląda tak samo jak wcześniej, ale tym razem elementy tablicy są posortowane.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB Konwertuj ciąg na tablicę

  2. Tworzenie indeksów wielopolowych w Mongoose / MongoDB

  3. MongoDB PHP Driver i kontrola zgodności MongoDB

  4. Wyjaśnienie MongoDb nie powiodło się:nieznany operator najwyższego poziomu:$query

  5. Tłumaczenie zapytania sql na język mongo