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

Získejte poslední dokumenty s odlišnými kritérii

K dosažení tohoto cíle můžete použít agregační rámec:

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

Pokud do výsledků pravděpodobně zahrnete další pole, můžete použít $first operátor

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


  1. Nejlepší způsob, jak vytvořit výraz mongo, který se nikdy neshoduje

  2. Jak importovat formát souboru .bson na mongodb

  3. Jak naplnit jeden až mnoho vztahů u mangusty s rodičovským refrénováním?

  4. jak získat maximální hodnotu pole v MongoDB