我有一个MongoDB数据库和一个React网页,它使用http请求向我的Node.js服务器显示内容。此Node.js使用mongoose与DB通信。react网页每页最多显示10个条目,当数据库变大时速度会很慢:
Node.js正在做什么:
router.get("/", async (req, res) => {
const movies = await Movie.find()
.select("-__v")
.sort("name");
res.send(movies);
});如您所见,Node.js返回所有数据库,前端React仅显示这10个条目,具体取决于用户正在查看的页面。
根据用户正在查看的页面,最好只从数据库中获取10个条目。
我该怎么做呢?
谢谢
发布于 2019-07-31 11:42:30
您可以使用skip()和limit()来完成此操作。
示例:
const movies = await Movie.find()
.select("-__v")
.skip(perPage * currentPage)
.limit(perPage)
.sort("name");或者你可以使用像mongoose-paginate这样的分页包...
发布于 2019-07-31 11:43:55
是的,有跳过和限制方法可以从数据库中获取一定数量的数据。
router.get("/", async (req, res) => {
const movies = await Movie.find()
.select("-__v").skip(10).limit(10) // use skip and limit value as you want.
.sort("name");
res.send(movies);
});发布于 2019-07-31 11:44:11
您可以使用.limit(n)限制返回对象的数量。
router.get("/", async (req, res) => {
const movies = await Movie.find()
.select("-__v")
.sort("name")
.limit(10);
res.send(movies);
});已经有一个关于这个问题的帖子了。请参阅此question。
https://stackoverflow.com/questions/57282783
复制相似问题