我正在尝试将MySQL表数据导出到MongoDB,在Rails中创建一组"Create“语句。
我的问题是:在我的原始表中,我有"created_at“和"updated_at”字段,即使在将数据导出到新的MongoDB文档时,我也希望保留原始值。但是,当我在Mongo中创建了一个新行之后,即使我告诉它设置"created_at“=我的原始日期,Mongo也会将它设置为当前的日期时间。
我怎样才能避免这种情况?这是我的MongoMapper模型:
class MongoFeedEvent
include MongoMapper::Document
key :event_type, String
key :type_id, Integer
key :data, String
timestamps!
end发布于 2011-10-16 04:05:25
您最好将MySQL表转储为JSON,然后使用mongoimport导入该JSON;这将比通过MongoMapper逐行导入要快得多,而且它将完全绕过您的问题,这是一个愉快的副作用。
有一个名为mysql2xxxx的gem可以帮助您将MySQL数据库转储到JSON
我还没有用过它,但作者似乎一直在使用它,所以如果需要的话,你应该能够得到帮助。或者,编写一个快速的一次性脚本将数据转储到JSON。
一旦有了JSON,就可以用mongoimport导入它,并继续处理更有趣的问题。
此外,mongoimport了解CSV和mysqldump可以直接编写CSV:
mysqldump命令还可以生成CSV、其他分隔文本或XML格式的输出。
因此,对于数据传输,完全跳过MongoMapper和逐行复制。将您的数据转储到CSV或JSON,然后一次性导入所有数据。
https://stackoverflow.com/questions/7780213
复制相似问题