paginación de matriz mongoDB
Tengo una colección de comentarios con Texto de comentario en matriz con sus Metadatos. Me gusta la paginación en la matriz de texto de comentario. La paginación debería permitirme obtener los "5 anteriores" o los "5 siguientes". Cuál es la mejor manera de hacer esto en mongoDB con un buen rendimiento.
{ "_id" : ObjectId( "502c706ac2e6777781a593f6" ),
"commentType":"loc",
"commentList" : [
{ "commentText" : "HelloComment",
"commentTS" : Date( 1345165636344 ),
"commentLoc" : { "commentlat" : 0,
"commentlong" : 0 },
"userInfo" : { "$ref" : "userProfile",
"$id" : ObjectId( "4fd182d92b2a87f780c6bbe8" ) } },
{ "commentText" : "2222222",
"commentTS" : Date( 1345165636344 ),
"commentLoc" : { "commentlat" : 0,
"commentlong" : 0 },
"userInfo" : { "$ref" : "userProfile",
"$id" : ObjectId( "4fd182d92b2a87f780c6bbe8" ) } },
{ "commentText" : "3333333",
"commentTS" : Date( 1345165636344 ),
"commentLoc" : { "commentlat" : 0,
"commentlong" : 0 },
"userInfo" : { "$ref" : "userProfile",
"$id" : ObjectId( "4fd182d92b2a87f780c6bbe8" ) } },
{ "commentText" : "44444444",
"commentTS" : Date( 1345165636344 ),
"commentLoc" : { "commentlat" : 0,
"commentlong" : 0 },
"userInfo" : { "$ref" : "userProfile",
"$id" : ObjectId( "4fd182d92b2a87f780c6bbe8" ) } },
{ "commentText" : "5555555",
"commentTS" : Date( 1345165636344 ),
"commentLoc" : { "commentlat" : 0,
"commentlong" : 0 },
"userInfo" : { "$ref" : "userProfile",
"$id" : ObjectId( "4fd182d92b2a87f780c6bbe8" ) } },
{ "commentText" : "6666666",
"commentTS" : Date( 1345165636344 ),
"commentLoc" : { "commentlat" : 0,
"commentlong" : 0 },
"userInfo" : { "$ref" : "userProfile",
"$id" : ObjectId( "4fd182d92b2a87f780c6bbe8" ) } },
{ "commentText" : "777777",
"commentTS" : Date( 1345165636344 ),
"commentLoc" : { "commentlat" : 0,
"commentlong" : 0 },
"userInfo" : { "$ref" : "userProfile",
"$id" : ObjectId( "4fd182d92b2a87f780c6bbe8" ) } },
{ "commentText" : "888888",
"commentTS" : Date( 1345165636344 ),
"commentLoc" : { "commentlat" : 0,
"commentlong" : 0 },
"userInfo" : { "$ref" : "userProfile",
"$id" : ObjectId( "4fd182d92b2a87f780c6bbe8" ) } },
{ "commentText" : "6666666",
"commentTS" : Date( 1345165636344 ),
"commentLoc" : { "commentlat" : 0,
"commentlong" : 0 },
"userInfo" : { "$ref" : "userProfile",
"$id" : ObjectId( "4fd182d92b2a87f780c6bbe8" ) } },
{ "commentText" : "999999",
"commentTS" : Date( 1345165668809 ),
"commentLoc" : { "commentlat" : 0,
"commentlong" : 0 },
"userInfo" : { "$ref" : "userProfile",
"$id" : ObjectId( "4fdeb271de26fd298262bb84" ) } },
{ "commentText" : "HelloComment",
"commentTS" : Date( 1345749858601 ),
"commentLoc" : { "commentlat" : 0,
"commentlong" : 0 },
"userInfo" : { "$ref" : "userProfile",
"$id" : ObjectId( "4fdeb271de26fd298262bb84" ) } },
{ "commentText" : "NewTestforcomments",
"commentTS" : Date( 1345750020526 ),
"commentLoc" : { "commentlat" : 0,
"commentlong" : 0 },
"userInfo" : { "$ref" : "userProfile",
"$id" : ObjectId( "4fdeb271de26fd298262bb84" ) } } ],
} }
Gracias por tu ayuda.