[英]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.