How do you limit an array subelement in Mongo?

Viewed 4035

Let's say I have the following data model in Mongo:

{
   _id: ...,
   name: "...",
   obj: {...},
   list: [ ... ],
}

Now let's say, my list array is very long, and I don't want to grab the whole document every time. So I want to get obj and name, but only grab the last 5 elements in list. How do you do this with with Mongo? I'm using pymongo.

2 Answers

use $slice operator to limit array elements

GeoLocation.find({},{name: 1, geolocation:{$slice: -5}})
    .then((result) => {
      res.json(result);
    })
    .catch((err) => {
      res.status(500).json({ success: false, msg: `Something went wrong. ${err}` });
});

where geolocation is array of data, from that we get last 5 record.

Related