【发布时间】:2017-12-10 19:11:48
【问题描述】:
我正在处理一些我在 Mongo 中导入的非常大的第三方 CSV 文件。问题是这些文件的标题非常不一致。一些文件包含全部小写、一些混合大小写和一些全部大写的标题。文件导入后,有没有办法不区分大小写查询集合?
简而言之,我能做到吗:
@collection.find('AB' => value) so that it's true for fields 'ab' or aB' as well?
有没有办法在导入时标准化这些标头?或者可能有另一种方式?
建议作为重复的问题是针对值而不是字段本身的正则表达式搜索
【问题讨论】:
-
@mudasobwa 你链接的问题是搜索值而不是字段
-
“值不是字段”是什么意思?虽然没有模式,
mongo具有区分大小写的键,{"a" => 42, "A" => 3.14}是具有两个不同字段的完全有效的记录。我会将问题取消标记为重复,但您应该考虑在插入阶段降低您的密钥。 -
按照@mudasobwa 的建议规范化插入。您当前的问题相当于“我想按列查找值,但我不知道列的名称或值的值”
-
@mudasobwa 有没有办法在导入期间在插入时将键小写?
-
预先执行
ruby -e "File.write('/path/to/file', File.readlines('/path/to/file').tap { |l| l[0].downcase! })"以修复要小写的标题。
标签: ruby-on-rails ruby mongodb