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

Sortowanie agregacji addToSet wynik

Tak, to możliwe, ale podejdź do tego inaczej. Podaję tylko własne dane, ale zrozumiesz koncepcję.

Moja próbka:

{ "array" : [  2,  4,  3,  5,  2,  6,  8,  1,  2,  1,  3,  5,  9,  5 ] }

Zamierzam „pół-cytować” CTO w tej sprawie i stwierdzić, że Zestawy są uważane za nieuporządkowane .

Istnieje prawdziwe oświadczenie JIRA, grupy Google, które brzmi mniej więcej tak. Więc weźmy to od „Elliota” i zaakceptujmy, że to będzie być tak.

Więc jeśli chcesz uzyskać uporządkowany wynik, musisz masować w ten sposób za pomocą takich etapów

db.collection.aggregate([

    // Initial unwind
    {"$unwind": "$array"},

    // Do your $addToSet part
    {"$group": {"_id": null, "array": {"$addToSet": "$array" }}},

    // Unwind it again
    {"$unwind": "$array"},

    // Sort how you want to
    {"$sort": { "array": 1} },

    // Use $push for a regular array
    {"$group": { "_id": null, "array": {"$push": "$array" }}}

])

A potem rób cokolwiek. Ale teraz twoja tablica jest posortowana.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Czy istnieje sposób, aby uniemożliwić MongoDB dodawanie liczby mnogiej do nazw kolekcji?

  2. Prosty sposób na generowanie kodu za pomocą Mongoose i Node.js i Underscore?

  3. Ograniczasz wyniki w MongoDB, ale nadal otrzymujesz pełną liczbę?

  4. Zapytanie MongoDB, aby zwrócić tylko osadzony dokument

  5. (MongoDB Java) $wciśnij do tablicy