sql >> Databáze >  >> NoSQL >> MongoDB

Mongodb:Získejte dokumenty seřazené podle dynamického hodnocení

Jsem nový v Mongodb a agregačních rámcích, ale s ohledem na odpověď Tim B dal jsem přišel na tohle:

db.coll.aggregate(
      { $project : {
                     "ranking" : { 
                                  "$divide" : ["$score", {"$subtract":[new Date(), "$updated"]}]
                                 }
                   }
      },
      { $sort : {"ranking" : 1}})

Pomocí $project můžete změnit tvar dokumentů a vložit předem vypočítané hodnoty, ve vašem případě pole hodnocení. Poté pomocí $sort dokumenty můžete seřadit podle pořadí v požadovaném pořadí zadáním 1 pro vzestupné nebo -1 pro sestupné.

Omlouvám se za hrozné formátování kódu, snažil jsem se, aby byl co nejčitelnější.



  1. MongoDB a Mongoid ve výrobě

  2. MongoDB:Použití shody s proměnnými vstupního dokumentu

  3. MongoDB pracuje pomalu při zatížení

  4. Jak mohu použít mongodb s elektronem?