mongo ドキュメント内の配列の件数を指定して取得
ドキュメント内の配列の件数が多い場合など、ページングのようにいくつかの件数毎に取得したかったので、調査しました。
テストデータのインサート(ブログ記事を例に、1記事のドキュメント内に、コメントの配列が複数ある設定)
db.articles.insert({'author':'hoge','body':'bodybodybody', 'comments':['c1','c2','c3','c4','c5','c6','c7','c8','c9','c10']}) ;
件数を指定して操作する例
// 先頭から5件のコメント db.articles.find( {author:'hoge'}, {comments:{$slice:5}} ) ; // 末尾から5件のコメント db.articles.find( {author:'hoge'}, {comments:{$slice:-5}} ) ; // 先頭から3件スキップして次の3件のコメント db.articles.find( {author:'hoge'}, {comments:{$slice:[3,3]}} ) ;