私は、ウェブサイトとそこにあるリンクを表す次のmongoドキュメントを持っています。
{"website":
"id":"123456",
"links":[
"link1","link2","link3",..."link1000"
]
}
そして、ページネーションをサポートするために、id で見つかった特定のドキュメントから限られた数のリンクを返したいと考えています。私はこのようなことを試みましたが、うまくいきません。サブドキュメントの数を制限する方法はありますか?
String query="{'website.id:'"+id+"'}";
String fields="{links:1}";
DBCursor dbCursor=this.getCollection(crawlersCollection)
.find(this.query(query),this.query(fields)).skip(skip).limit(limit);
私が試した他のアプローチは、 $slice を使用することです
String fields="{'links':{'$slice':["+skip+","+limit+"]}}";
しかし、ページネーションにはあまり役に立たないため、これはうまく機能しません。たとえば、43 個のリンクがある場合、page=2 に limit=100 を指定すると 43 個の結果が返されるため、クエリを作成する前にリンクの数を確認する必要があります。
この問題を解決する方法について何か提案はありますか?
ありがとう