簡體   English   中英

如何通過哈希值在哈希內的哈希數組中搜索?

[英]How do I search within an array of hashes inside a hash by hash values?

我是紅寶石和Mongo的新手,正在尋找答案...

我有一個包含這樣的記錄的mongo記錄數據庫-哈希值內嵌在數組中

{
  "id =>1",
  "address" =>[
    {
      "number" => 1404,
      "street" =>"jasmine",
      "city" => "NY",
      "state" => "NY",
      "zip" => "02941"
    }, 
    {
      "number" => 2400,
      "street" =>"miner",
      "city" => "Boston",
      "state" => "MA",
      "zip" => "02760"
    },
    {etc..}
  ], 
  "geo" => { "lat" => 33.875, "lon" => -116.301 }     
  "first_name"=> "joe",
  "last_name" =>  "smith"
}

{ 
  "id" =>"2",
  "address" =>[{...},{...}, etc ],
  "geo" => {"lat" => 32.875, "lon" => -115.301 }, 
  "first_name"=> "john",
  "last_name"=>"doe"
} 

並且我想查找/返回所有包含“ street” ==“ jasmine”的記錄,如何在查找條件中引用“ street”?

如果要遍歷每個對象:

objects_on_jasmine_street = []

NameOfObject.find_each do |object|
  if object['address'][0]['street'] # this will return street
     object_on_jasmine_street << object
  end
end

objects_on_jasmine_street

我認為在Mongo中搜索數組屬性相當緩慢-考慮將地址的哈希轉換為對象實例。 然后,只需像往常一樣在您的Address對象而不是User對象上進行搜索。 您也可以考慮在Address對象上索引street屬性,以便在搜索時變得更快。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM