我有一个非常大的数据集。以说明为例:
users = [
{
username: "Bill",
gender: "Male",
details: {
city: "NY"
}
},
{
username: "Mary",
gender: "Female",
details: {
city: "LA"
}
}
]
我需要一种快速的方法来通过多个键中的多个值来搜索多个记录。
我有点分隔的键列表
keys = ["gender", "details.city"]
现在我需要做这样的事情(用伪代码编写):
my_users = users.any? {|user|
keys.each do |key|
user.key == "NY"
end
}
我知道这行不通。它不起作用的原因之一是我的键列表是点分隔的。因此,我想我可以将其拆分为键数组,例如['gender']和['details] ['city'],或使用类似以下方法的方法将用户哈希转换为点分隔的对象: >
def to_o JSON.parse to_json, object_class: OpenStruct end
底线-我需要一种在大型JSON数组中搜索并通过多个键查找记录的方法,它需要快速:)有什么建议吗?
我有一个非常大的数据集。为了举例说明,请以以下示例为例:users = [{用户名:“ Bill”,性别:“ Male”,详细信息:{city:“ NY”}},{...
我希望这种方法像您想要的那样工作
对于线性搜索,德米尔的解决方案是一个很好的解决方案。
您可以使用在Ruby 2.3.0中引入的Hash#dig
动态遍历哈希: