我有以下代表网站的 mongo 文档和在其上找到的链接。
{"website":
"id":"123456",
"links":[
"link1","link2","link3",..."link1000"
]
}
我想从 id 找到的特定文档中返回有限数量的链接,以支持分页,例如 page=1,limit=100 应该返回前 100 个链接。我尝试过这样的事情,但它不起作用。有什么办法可以限制子文档的数量吗?
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 个结果,所以我必须在创建查询之前检查链接数。
你对如何解决这个问题有什么建议吗?
谢谢