如何在 node.js 中使用 mongodb 游标
How to use a mongodb cursor with node.js
假设我的数据库中有一个名为 rabbits 的集合。我的应用程序使用这个数据库,目前有多个用户在使用我的应用程序。用户想一只一只地看兔子;当他们启动应用程序时,他们会看到 1 只兔子,然后他们按 'next' 以查看下一只,依此类推。
我不想每次用户按下下一步时都查询数据库,所以我决定使用游标。我正在考虑创建一个将用户映射到其光标的简单地图数据结构(作为缓存工作)。所以在再次查询数据库之前,我们只需先检查地图。
这是好的做法吗?我应该在这里使用 redis 吗?
这个问题可能有上百万个答案,而且大多数都是正确的。只是一些可能性:
- 当然可以用Redis,凭记忆读取
- 您还可以使用 node-cache 之类的方法降级出价,这样开销会更少且更易于实施。
- 您可以使用光标 --> 数组 ---> JSON 如果您不担心不断有新兔子出现(毕竟兔子的繁殖速度很快 :) -- 那么您可以编写兔子到 JSON 文件,并在客户想要浏览它时选择。
- 您当然可以聚合您的 MongoDB 游标...或者每隔几分钟创建一个 cron job 运行 来创建一个新的 Rabbit Pick 游标。
一直在继续。
关键是要将您的决定与服务器上的服务、内存和内核相匹配。
假设我的数据库中有一个名为 rabbits 的集合。我的应用程序使用这个数据库,目前有多个用户在使用我的应用程序。用户想一只一只地看兔子;当他们启动应用程序时,他们会看到 1 只兔子,然后他们按 'next' 以查看下一只,依此类推。
我不想每次用户按下下一步时都查询数据库,所以我决定使用游标。我正在考虑创建一个将用户映射到其光标的简单地图数据结构(作为缓存工作)。所以在再次查询数据库之前,我们只需先检查地图。
这是好的做法吗?我应该在这里使用 redis 吗?
这个问题可能有上百万个答案,而且大多数都是正确的。只是一些可能性:
- 当然可以用Redis,凭记忆读取
- 您还可以使用 node-cache 之类的方法降级出价,这样开销会更少且更易于实施。
- 您可以使用光标 --> 数组 ---> JSON 如果您不担心不断有新兔子出现(毕竟兔子的繁殖速度很快 :) -- 那么您可以编写兔子到 JSON 文件,并在客户想要浏览它时选择。
- 您当然可以聚合您的 MongoDB 游标...或者每隔几分钟创建一个 cron job 运行 来创建一个新的 Rabbit Pick 游标。
一直在继续。
关键是要将您的决定与服务器上的服务、内存和内核相匹配。