I have a comment collection with Comment Text in array with its Metadata. I like to the pagination in the Comment Text Array. The pagination should allow me to get the "previous 5" or "next 5". What is the best way to do this in mongoDB with good performance.
{ "_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" ) } } ],
} }
Thanks for your help.