Javascript 如何在不加载大量数据的情况下在mongoDB上显示大量注释?页面是否有效?

Javascript 如何在不加载大量数据的情况下在mongoDB上显示大量注释?页面是否有效?,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,对于我的项目,我正在开发一个论坛,每个帖子都会有多个评论。我担心在一篇文章中会有很多评论,所以我这样做是为了让服务器只返回来自后端的评论ID,就像这样。 我使用了这样的过滤器: collection.find({}).project({ comment: 0, email: 0, createdAt: 0 }).toArray() let pages = [ [ {_id: '876', post_id: '456'}, {_id: '756', pos

对于我的项目,我正在开发一个论坛,每个帖子都会有多个评论。我担心在一篇文章中会有很多评论,所以我这样做是为了让服务器只返回来自后端的评论ID,就像这样。 我使用了这样的过滤器:

collection.find({}).project({ comment: 0, email: 0, createdAt: 0 }).toArray()
let pages = [
    [
        {_id: '876', post_id: '456'},
        {_id: '756', post_id: '456'},
    ],
    [
        {_id: '645', post_id: '456'},
        {_id: '534', post_id: '456'},
    ]
]
这就是它的回报

let allCommentIds = [
    {_id: '123', post_id: '456'},
    {_id: '321', post_id: '456'},
    {_id: '567', post_id: '456'},
    {_id: '678', post_id: '456'},
]
我的委托人会把这些身份证切碎成这样的页面:

collection.find({}).project({ comment: 0, email: 0, createdAt: 0 }).toArray()
let pages = [
    [
        {_id: '876', post_id: '456'},
        {_id: '756', post_id: '456'},
    ],
    [
        {_id: '645', post_id: '456'},
        {_id: '534', post_id: '456'},
    ]
]
我做了另一个函数,返回给定ID的注释的详细信息。因此,客户端在其中有一个循环,将获得返回的值

for (let c in pages[pageNumber]) {
    let r = await BlockService.getCommentDetailsWithId(pages[pageNumber][c]._id)
    this.commentDetails.push(r[0])
}
然后,我将仅显示(本例中)2个ID的注释,而不是全部4个ID的注释


这是完成这项任务最有效的方法吗?我遇到了评论加载速度非常慢的问题。加载速度缓慢可能是因为模板正在重新提交,但也可能是编程错误。

您可以使用mongodb的limit()函数来限制正在检索的数据。您可以在不同时获取所有数据(注释)的情况下加载注释。

您可以使用mongodb的limit()函数来限制正在检索的数据。您可以加载注释,而无需同时获取所有数据(注释)。

我想出来了。我在服务器端代码中使用了类似这样的代码。跳过值是一个设定值,然后乘以页码

skip = 2 * pageNumber
let retrievedData = await comments.find(
    { block_id: req.params.block_id }
).skip(skip)
.limit(2)
.toArray()
我还返回了这个1路径中的注释细节,并删除了单独获取细节的函数,因为它不再需要了


这被称为分页

我想出来了。我在服务器端代码中使用了类似这样的代码。跳过值是一个设定值,然后乘以页码

skip = 2 * pageNumber
let retrievedData = await comments.find(
    { block_id: req.params.block_id }
).skip(skip)
.limit(2)
.toArray()
我还返回了这个1路径中的注释细节,并删除了单独获取细节的函数,因为它不再需要了


这被称为分页

,但我将如何对其进行分区?我得到了一定数量的评论,但是如果我进入下一页,我需要下一部分的评论。然后你可以对它使用分页。但是我该如何对它进行分区呢?我得到一定数量的评论,但是如果我进入下一页,我需要下一部分的评论。然后你可以使用分页。