如何保持两个只读集合与mongoose同步

时间:2013-07-31 12:33:03

标签: node.js mongodb mongoose database

我有一个名为Products的猫鼬模型,我从外部系统(谷歌电子表格)提供。

每次电子表格更改时,我都会收到一个事件,我需要找出更改的内容并相应地更新Products集合。

我最简单的方法是:

  1. 在电子表格更改的事件中,删除Product集合
  2. 中的所有文档
  3. 将我从电子表格中获得的全部新产品系列再次插入Products集合。
  4. 这几乎没有效率,但它是一个简单而干净的解决方案,假设集合不是很大并且不会过于频繁地更新。

    我能想到的任何其他方法都涉及迭代更新后的Google电子表格和Products集合,并将它们相互比较。

    是否有继承方式这样做?也许是一个更有效的算法?

1 个答案:

答案 0 :(得分:0)

我的建议是插入一个带有临时名称的新空集合,然后重命名它以原子方式覆盖现有集合。

您还可以考虑在电子表格中创建或更新的每个文档上执行upsert,然后删除所有已删除的文档。