gpt4 book ai didi

mysql - 从MySQL到Mongo数据导出: how to preserve creation date?

转载 作者:行者123 更新时间:2023-11-29 05:39:40 25 4
gpt4 key购买 nike

我正在尝试将 MySQL 表数据导出到 MongoDB,在 Rails 中创建一组“Create”语句。

我的问题是:在我的原始表中,我有“created_at”和“updated_at”字段,即使我将数据导出到我的新 MongoDB 文档中,我也想保留原始值。但是在我在 Mongo 中创建一个新行之后,即使我告诉它设置“created_at”= [my original date],Mongo 也会将其设置为当前日期时间。

我怎样才能避免这种情况?这是我的 MongoMapper 模型:

class MongoFeedEvent
include MongoMapper::Document

key :event_type, String
key :type_id, Integer
key :data, String
timestamps!

end

最佳答案

您最好将 MySQL 表转储为 JSON,然后使用 mongoimport导入该 JSON;这比通过 MongoMapper 逐行执行要快得多,而且它会作为一个令人愉快的副作用完全绕过您的问题。

有一个名为 mysql2xxxx 的 gem 可以帮助您将 MySQL 数据库转储为 JSON。 :

How to export a MySQL database to JSON?

我没有使用过它,但作者似乎经常在 SO 上闲逛,所以如果需要,您应该能够获得帮助。或者,编写一个快速的一次性脚本将您的数据转储到 JSON。

获得 JSON 后,您可以使用 mongoimport 导入它并继续解决更有趣的问题。

另外,mongoimport 理解 CSV 和 mysqldump可以直接写CSV:

The mysqldump command can also generate output in CSV, other delimited text, or XML format.

因此,为了数据传输,完全跳过 MongoMapper 和逐行复制。将您的数据转储为 CSV 或 JSON,然后一次性全部导入。

关于mysql - 从MySQL到Mongo数据导出: how to preserve creation date?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7780213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com