【问题标题】:How to normalize input in Mongo - Ruby如何在 Mongo 中规范化输入 - Ruby
【发布时间】: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


【解决方案1】:

您应该为String class documentation 使用内置的Ruby 方法。例如,.strip! 可以很好地用于删除多余的空格。 .downcase! 可用于规范化案例。您可能会发现在文档中使用的其他内容很有用。这是初学者到中级 Ruby 编程的最佳资源之一。一旦掌握了每个类的方法,就可以充分利用 Ruby 的强大功能。

【讨论】:

  • 这绝不是对上述问题的回答。
  • 是的,我解释了如何将字符串小写,这可用于解决所述问题。但也许下一次,你应该读慢一点,而不是这么快就放弃。
  • “可以用来解决问题”不是答案。答案应该解决问题
猜你喜欢
  • 2013-12-11
  • 1970-01-01
  • 2015-06-05
  • 2019-07-03
  • 2015-01-15
  • 2019-08-19
  • 2018-04-23
  • 2019-09-19
  • 2023-01-25
相关资源
最近更新 更多