sql >> Database >  >> NoSQL >> MongoDB

Mongodb:documenten gesorteerd op dynamische rangorde

Ik ben nieuw in Mongodb en aggregatieframeworks, maar gezien het antwoord Tim B gaf ik kwam met dit:

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

$project gebruiken u kunt documenten hervormen om vooraf berekende waarden in te voegen, in uw geval het rangordeveld. Gebruik daarna $sort u kunt de documenten sorteren op rangorde in de door u gewenste volgorde door 1 op te geven voor oplopend of -1 voor aflopend.

Het spijt me voor de vreselijke code-opmaak, ik heb geprobeerd het zo leesbaar mogelijk te maken.



  1. Grote objecten cachen met Redis-cache

  2. MongoDB $sampleRate

  3. Async gebruiken in een transactie in de Spring-toepassing

  4. Tel resultaten met MongoDB 3.0 Java Driver