sql >> Database teknologi >  >> NoSQL >> MongoDB

Mongodb:Få dokumenter sorteret efter en dynamisk rangering

Jeg er ny til Mongodb og aggregeringsrammer, men overvejer svaret Tim B gav jeg kom op med dette:

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

Brug af $project du kan omforme dokumenter for at indsætte forudberegnede værdier, i dit tilfælde rangeringsfeltet. Brug derefter $sort du kan sortere dokumenterne efter rangorden i den rækkefølge, du ønsker, ved at angive 1 for stigende eller -1 for faldende.

Jeg beklager den forfærdelige kodeformatering, jeg forsøgte at gøre den så læsbar som muligt.



  1. MongoDB case-ufølsomt indeks starter med ydeevneproblemer

  2. Forslag til simpel .NET distribueret caching-løsning

  3. Hent en værdi fra MongoDB efter dets nøglenavn

  4. Hvordan kan jeg få datahenvisning fra en samling til en anden? Mongodb