检索由大量数据过滤后的大量数据

时间:2019-01-24 10:31:39

标签: mongodb odata

我有一个前台,可以通过odata请求查询express.js服务器。

在mongodb中: 我有一个“项目”集合,其中包含约5万条记录。 我有一个“用户”收藏集。

现在,我需要为每个用户设置项目限制,例如:

用户A只能检索这124个项目

用户B只能检索这34000个项目 这些限制必须针对每个用户。

我的问题是:

  1. 这些限制应存储在哪里?应该是另一个收藏吗? 我认为在每个用户的“用户”集合中添加像一个具有3万个项ID的数组是错误的。

  2. 我将如何取回物品? 这是odata标准(为此使用Devexpress dxDataGrid),因此我需要返回可用的总数。

当然使用

{$nin: restrictedItemsArray}

可以工作,但是我又想把那么多的内存装载进内存是不行的。 我想使用$ facet进行两次聚合:

  1. 使用$ limit和$ skip进行首次聚合以检索实际项目
  2. 第二次汇总以检索总数

0 个答案:

没有答案