Sunday, June 23, 2024

Complex aggregation queries Mongodb - Examples

 Group and slice array

@Aggregation(pipeline = {
"{ $match: {'category':{$regex : ?0, $options: 'i'}}}",
"{ $group: { _id: {category:'$category'}, data: { $push: '$$ROOT' } } }",
"{ $project: { _id: 0, category:'$_id.category', videos:{ $slice:['$data',?1,?2]} }"

})

Sunday, June 9, 2024

Mongo playground - learn and tune query

 Use MongoPlayground to learn and tune queries


https://mongoplayground.net/p/lhl5nqbRHta


Some examples:

1. Select max N of a group: (https://mongoplayground.net/p/h79lRA01Jop)


db.collection.aggregate([

  {

    "$match": {}

  },

  {

    "$group": {

      "_id": {

        "name": "$name"

      },

      "data": {

        "$push": "$$ROOT"

      }

    }

  },

  {

    "$project": {

      "_id": 0,

      "name": "$_id.name",

      "videos": {

        "$slice": [

          "$data",

          2

        ]

      }

    }

  }

])