gpt4 book ai didi

mongodb - 在纪元之前发生的 MongoImport 日期

转载 作者:可可西里 更新时间:2023-11-01 09:17:46 25 4
gpt4 key购买 nike

我正在编写一个实用程序,它将我们的关系数据库转换为一个复杂的 JSON 对象,并转储到按主题分组的文件。然后,我想使用 mongoimport 工具将这些文件导入 MongoDB 集合。

我们的数据包括表示纪元之前发生的日期的时间戳,其适当的 JSON 表示会产生负数。虽然 MongoDB 本身可以很好地处理这些问题,但导入工具 JSON 解析器使用 unsigned long long 变量并失败。

如果您使用 Mongo 的特殊 JSON 日期表示格式 ({"key": { "$date": "value_in_ticks"} }),导入工具将在这些文档上抛出错误并跳过进口。您还可以使用 JavaScript 日期表示法 ({"key": new Date(value_in_ticks) }),它会被成功导入,但会被解析为无符号值,从而创建垃圾日期。

特殊日期格式因 assertion checking for reserved words 而失败.到达此代码是因为值开头存在负号导致特殊日期解析退出并返回正常文档解析。

code to parse JSON dates显式调用 boost 库 uint_parser。存在此函数的签名版本和 issue on their JIRA tracker已经存在以利用它(对此我评论说我会尝试)。

如果没有立即深入研究代码以尝试更新此代码以进行签名,我现在是否可以采用替代路线来加载这些日期?

我想通过 cron 每晚运行几个月以进行测试,所以我希望它非常简单。这些日期存在于许多不同集合中的文档的许多不同部分中,因此解决方案应该被推广。

最佳答案

聚会有点晚了,但我刚刚遇到了同样的问题。

我的解决方法是将日期作为字符串导入(例如“1950-01-01”),并使用带有 Mongoid 的 Ruby on Rails 编写转换脚本:

Dates.each do |d|
d.mydate = d.mydate.to_date
d.save
end

希望您可以将其适应您正在使用的任何语言/框架。

关于mongodb - 在纪元之前发生的 MongoImport 日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4098132/

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