1

我正在使用MongoDB来保存有关产品的数据。在编写了初始大型数据集(24mio 项)后,我想更改集合中的所有项。

因此,我使用游标遍历整个集合。然后我想为集合中的每个项目添加一个“行”或字段。对于大型数据集,这是行不通的。仅更新了 180000 个项目。在小范围内它正在发挥作用。这是正常的行为吗?

在使用游标遍历整个集合时,MongoDB是否不应该支持写入?

什么是这样做的好习惯呢?

4

2 回答 2

0

对于较大的集合,您可能会遇到快照问题。当您将数据添加到对象并保存时,它会增长,迫使 mongodb 移动文档。然后您可能会找到该对象两次。

您可以$snapshot在查询中使用,也可以使用稳定的顺序,例如sort({"_id":1}). 请注意,您不能同时使用两者。

还要确保至少使用公认的写关注。

于 2013-10-10T08:30:29.303 回答
0

当我们遇到类似问题时,我们以 100k(带有一些测试)块的形式获取数据。这是一个快速而简单的解决方案。

于 2013-10-10T10:48:20.463 回答