node.js - 客户应该为每个集合或每个文档制作一个变更流吗?

标签 node.js mongodb mongoose aggregation changestream

我目前正在使用MongoDB作为数据库的项目,该数据库还缓存文档,因此它不必总是返回数据库进行读取。
现在我的问题是:

我应该如何实现缓存和数据库同步?

我应该为通过聚合缓存的每个文档创建一个变更流(每个缓存的文档都保存在一个类中),还是应该为整个集合创建一个变更流,然后在客户端上整理出重要的变更?

我的项目使用node.js和mongoose,尽管我猜这没关系。

最佳答案

好了,经过一番思考,我得出的结论是,这取决于您实际使用集合中文档的数量。

如果您将始终缓存该集合中的几乎所有文档,那么只需要更改流就很有意义。如果只缓存了其中一小部分,则将带宽用于不必要的更改通知是没有意义的。

就我而言,我决定只对每个文档进行更改。

关于node.js - 客户应该为每个集合或每个文档制作一个变更流吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60791487/

相关文章:

javascript - 给定具有递归字段 `children` 的文档的 id,查找引用该文档或其任何子文档的所有文档

node.js - Sequelize,自定义setter,不设置

mongodb - 过滤子文档数组

javascript - 根据排序顺序获取文档在集合中的位置

node.js - 如何将当前时间戳放入 Mongoose Schema?

mongodb - 如何对 $meta : "textScore" with Loopback? 上的 $text 搜索进行排序

node.js - MarkoJs "Getting Started"教程中出现错误

javascript - 如何使用 curl 与 exec nodejs

javascript - 为什么我在 Node 中运行的 .js 文件中遇到 foreach 未定义错误......我该如何修复它?

mongodb - 我应该如何使用 mgo 处理 UUID 字段?