0

我有一个包含“参考数据”的 MongoDB (v2.2.0) 集合。我需要定期用来自外部来源的数据替换该集合中的所有文档。重要的是,在替换参考数据时,没有任何东西可以访问集合。

我是否认为最好的解决方案是简单地创建一个具有不同名称的新(即“临时”)集合,用数据加载它,然后重命名它?

例如:

  1. 创建集合myCollection-TEMP
  2. 插入所有文件into myCollection-TEMP
  3. 重命名临时集合以替换(即,在重命名之前删除)当前集合db.myCollection-TEMP.renameCollection('myCollection', true)

据我所知,没有办法安全地“清空”集合,“批量导入”文档,并确保在该过程的中间没有其他任何东西可以访问该集合。

4

1 回答 1

1

是的,创建一个临时集合然后重命名是要走的路。这也是其他技术中的常用方法。例如,计算机图形中的双缓冲。您在不可见的背景平面中准备一个框架,然后将其与屏幕交换。这会立即更新图片而不会出现闪烁或其他伪影。

于 2012-10-11T23:02:31.690 回答