sql >> Databasteknik >  >> NoSQL >> MongoDB

Få de senaste dokumenten med olika kriterier

Du kan använda aggregeringsramverket för att uppnå detta:

 db.collection.aggregate(
          [
             {$match:
                  {action:'entry'}
             },
             {$group:
                  {_id:'$name',
                   first:
                         {$max:'$timestamp'}
                  }
             }
          ])

Om du sannolikt kommer att inkludera andra fält i resultaten kan du använda $first operatör

 db.collection.aggregate(
          [
             {$match:
                  {action:'entry'}
             },
             {$sort:
                  {name:1, timestamp:-1}
             },
             {$group:
                  {_id:'$name',
                   timestamp: {$first:'$timestamp'},
                   otherField: {$first:'$otherField'},
                  }
             }
          ])


  1. Jämför 2 datum i mongo hitta metod

  2. Fråga där summan av två fält är mindre än det angivna värdet

  3. MongoDB eller CouchDB - lämplig för produktion?

  4. MongoDB:För många positionella (dvs. '$') element hittades i sökvägen