Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Skip and Limit on nested array element

I want to apply skip and limit for paging in nested array of a document how can I perform this [Efficient Way]

My Document recored like

{
   "_id":"",
   "name":"",
   "ObjectArray":[{
       "url":"",
       "value":""
   }]
}

I want to retrieve multiple document and every document contain 'n' number of record.

I am using $in in find query to retrieve multiple record on basis of _id but how can i get certain number of element of ObjectArray in every document?

like image 536
Rishabh Garg Avatar asked May 13 '15 18:05

Rishabh Garg


1 Answers

You can try like this -

db.collection.find({}, {ObjectArray:{$slice:[0, 3]}})

This will provide you records from 0..3

$slice:[SKIP_VALUE, LIMIT_VALUE]}

For your example:-

db.collection.find({"_id":""}, {ObjectArray:{$slice:[0, 3]}})

Here is the reference for MongoDB Slice feature. http://docs.mongodb.org/manual/reference/operator/projection/slice/

like image 165
Satish Shinde Avatar answered Nov 13 '22 06:11

Satish Shinde