- Reference >
- Operators >
- Query and Projection Operators >
- Projection Operators >
- $slice (projection)
$slice (projection)¶
-
$slice
¶ The
$slice
operator controls the number of items of an array that a query returns. For information on limiting the size of an array during an update with$push
, see the$slice
modifier instead.db.collection.find()
operations on views do not support$slice
projection operator.Consider the following prototype query:
db.collection.find( { field: value }, { array: {$slice: count } } );
This operation selects the document
collection
identified by a field namedfield
that holdsvalue
and returns the number of elements specified by the value ofcount
from the array stored in thearray
field. Ifcount
has a value greater than the number of elements inarray
the query returns all elements of the array.$slice
accepts arguments in a number of formats, including negative values and arrays. Consider the following examples:db.posts.find( {}, { comments: { $slice: 5 } } )
Here,
$slice
selects the first five items in an array in thecomments
field.db.posts.find( {}, { comments: { $slice: -5 } } )
This operation returns the last five items in array.
The following examples specify an array as an argument to
$slice
. Arrays take the form of[ skip , limit ]
, where the first value indicates the number of items in the array to skip and the second value indicates the number of items to return.db.posts.find( {}, { comments: { $slice: [ 20, 10 ] } } )
Here, the query will only return 10 items, after skipping the first 20 items of that array.
db.posts.find( {}, { comments: { $slice: [ -20, 10 ] } } )
This operation returns 10 items as well, beginning with the item that is 20th from the last item of the array.