sql >> Database >  >> NoSQL >> MongoDB

document retourneren met het laatste subdocument alleen in mongodb-aggregaat

U kunt $unwind . gebruiken , $sort , en $group om dit te doen met iets als:

Thread.aggregate([
    // Duplicate the docs, one per messages element.
    {$unwind: '$messages'}, 
    // Sort the pipeline to bring the most recent message to the front
    {$sort: {'messages.date_added': -1}}, 
    // Group by _id+title, taking the first (most recent) message per group
    {$group: {
        _id: { _id: '$_id', title: '$title' }, 
        message: {$first: '$messages'}
    }},
    // Reshape the document back into the original style
    {$project: {_id: '$_id._id', title: '$_id.title', message: 1}}
]);



  1. MongoDB-service draait niet in Fedora

  2. Waarom voegt mijn schema geen standaardwaarden toe aan mangoestarrays?

  3. 3 manieren om een ​​willekeurig voorbeeld van documenten uit een MongoDB-verzameling te retourneren

  4. Een overzicht van ACID-transacties met meerdere documenten in MongoDB en hoe ze te gebruiken