Javascript 如何使用mongoose从mongoDB获取一定数量的对象?(Node.js)
我有一个MongoDB数据库和一个React网页,该网页使用对Node.js服务器的http请求显示内容。此Node.js使用mongoose与数据库通信。react网页每页最多显示10个条目,当数据库变大时,它会变慢: Node.js正在做什么:Javascript 如何使用mongoose从mongoDB获取一定数量的对象?(Node.js),javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我有一个MongoDB数据库和一个React网页,该网页使用对Node.js服务器的http请求显示内容。此Node.js使用mongoose与数据库通信。react网页每页最多显示10个条目,当数据库变大时,它会变慢: Node.js正在做什么: router.get("/", async (req, res) => { const movies = await Movie.find() .select("-__v") .sort("name")
router.get("/", async (req, res) => {
const movies = await Movie.find()
.select("-__v")
.sort("name");
res.send(movies);
});
如您所见,Node.js返回所有数据库,前端React仅显示10个条目,具体取决于用户正在查看的页面
根据用户正在查看的页面,最好只从数据库中获取10个条目
我该怎么做
谢谢您可以使用skip()
和limit()
来执行此操作
例如:
const movies = await Movie.find()
.select("-__v")
.skip(perPage * currentPage)
.limit(perPage)
.sort("name");
或者您可以使用分页软件包,如
mongoosepaginate
..是的,有跳过和限制方法可以从db获取一定数量的数据
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);
});
您可以使用
.limit(n)
限制返回对象的数量
已经有一个帖子提出了这个问题。参考这个
router.get("/", async (req, res) => {
const movies = await Movie.find()
.select("-__v")
.sort("name")
.limit(10);
res.send(movies);
});