我有一个已导入 Meteor 项目的 csv 文件,我更新了 csv 文件(添加了几列数据),我想重新导入 csv 文件。如果我再次导入它,它会覆盖第一个吗?或者我会有两个同名的收藏吗?最好的方法是什么?
最佳答案
如果您再次重新导入文件,它将插入而不是更新到集合中 因此,如果您的集合在某个字段上具有唯一键索引(如 _id,因为默认情况下 _id 已编入索引且是唯一的)并且该字段是 csv 文件中的一列。当你再次导入时,mongodb 会抛出一个错误,说你违反了一个唯一的唯一约束并停止,你的旧数据没有受到影响。
如果不是,则您的集合没有任何其他唯一键索引,并且 _id 不是 csv 文件中的列。然后,如果您重新导入,您的集合将包含旧数据和您刚刚导入的新数据的重复记录。
不管怎样,结果都不是你想要的。
同一数据库中不能有 2 个同名的集合。
最简单的方法:如果您的数据不重要,您可以删除集合并重新导入
否则您将不得不更新 mongodb 中的文档(使用 mongo 控制台或编写脚本)
关于mongodb - 用 Meteor 中的新 mongo 集合替换现有 mongo 集合的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34558967/