Node.js 如何处理在mongodb atlas上加载大集合的所有记录并侦听新数据?

Node.js 如何处理在mongodb atlas上加载大集合的所有记录并侦听新数据?,node.js,angular,primeng,mongodb-atlas,monk,Node.js,Angular,Primeng,Mongodb Atlas,Monk,我有一个angular应用程序,当它加载来自mongodb atlas集合的所有数据时,它有大约12K条记录,并且每天都在增加,所以数据集很大。该数据从Priming加载到表中。我们希望表中的所有数据在任何时候都可用,以便查询、查看和查询内存中的整个数据集。我有两个主要问题: 由于数据集很大,现在加载大约需要10秒,而且显然会随着数据的增加而增加。所以我想加快速度 这些数据正从外部来源转储到MondogbAtlas中。一旦我将数据加载到网站中,我希望能够监听新的数据并更新我的UI,而无需重新加载

我有一个angular应用程序,当它加载来自mongodb atlas集合的所有数据时,它有大约12K条记录,并且每天都在增加,所以数据集很大。该数据从Priming加载到表中。我们希望表中的所有数据在任何时候都可用,以便查询、查看和查询内存中的整个数据集。我有两个主要问题:

  • 由于数据集很大,现在加载大约需要10秒,而且显然会随着数据的增加而增加。所以我想加快速度

  • 这些数据正从外部来源转储到MondogbAtlas中。一旦我将数据加载到网站中,我希望能够监听新的数据并更新我的UI,而无需重新加载页面,因为我上面提到了第1点。我该怎么做

  • 我在网上研究了不同的主题,比如使用mongodb的redis,也看到了这个关于观察mongodb收藏变化的答案:

    由于我是angular领域的新手,而且在高效处理大型数据集这一主题上,我遇到了一个难题,那就是如何一起实现它

    下面是加载页面时将数据加载到表中的代码片段

    ngOnInit(){
    this.selectedColumns=this.cols;
    这是。加载=真;
    这个.handleEventData();
    this.setCustomFilters();
    }
    handleEventData=异步函数(){
    this.eventService.getEvents().subscribe((数据:any[])=>{
    this.events=this.flattenEventData(数据);
    this.makeEventDataUserFriendly(this.events);
    this.setDistinctOptions(this.events);
    这一点:加载=错误;
    })
    }

    您实现了p表

    <p-table [value]="events" #dt [columns]="selectedColumns" [paginator]="true" [rows]="250" [loading]="loading"
      [autoLayout]=true [reorderableColumns]="true" [rowsPerPageOptions]="['250','500','1000']" dataKey="_id"
      rowExpandMode="single" selectionMode="single">
    
    
    
    neet请求所有数据,这是不高效的,会影响所有人的性能或会使浏览器崩溃

    primeng table support Lazy模式便于处理大型数据集,而不是加载整个数据,每次分页、排序和筛选时,通过调用onLazyLoad回调加载小块数据


    太棒了。谢谢你的回答!