On this page
$slice (projection)
views上的db.collection.find()个操作不支持$slice个投影运算符。
考虑以下原型查询:
db.collection.find( { field: value }, { array: {$slice: count } } );
此操作从保存在array字段中的数组中选择由名为field的字段标识的文档collection并保存value,并返回由count的值指定的元素数。如果count的值大于array中的元素数,则查询返回数组的所有元素。
$slice接受多种格式的参数,包括负值和数组。请考虑以下示例:
db.posts.find( {}, { comments: { $slice: 5 } } )
在这里,$slice选择comments字段中数组的前五个项目。
db.posts.find( {}, { comments: { $slice: -5 } } )
此操作返回数组中的最后五个项目。
以下示例将数组指定为$slice的参数。数组采用[ skip , limit ]的形式,其中第一个值表示要跳过的数组中的项目数,第二个值表示要返回的项目数。
db.posts.find( {}, { comments: { $slice: [ 20, 10 ] } } )
在此,查询将跳过该数组的前 20 个项目,仅返回 10 个项目。
db.posts.find( {}, { comments: { $slice: [ -20, 10 ] } } )
此操作还返回 10 个项目,从数组的最后一个项目开始的第 20 个项目开始。