i have problem in fetching data database. have array type column in mongodb database, in saving hash type data in each array index. have data on basis of hash match data base.
my data in database saving
{ "_id" : objectid("521603970ff5fa4b47000018"), "message_text" : "#cricket #badminton #sachin #tendulkar #ibl #masterblaster #srt cricketing world lights ibl http://t.co/rwskrm2eqf via @msncricket", "source" : "<a href=\"http://twitter.com/tweetbutton\" rel=\"nofollow\">tweet button</a>", "status_id" : numberlong("370521615638884352"), "status_created_at" : "2013-08-22 17:53:31 +0530", "user_id" : "31677680", "screen_name" : "msncricket", "name" : "msn cricket", "followers_count" : 11515, "friends_count" : 303, "query" : [ { "filterid" : "5215b40c0ff5fa111e000001", "subfilterid" : "60728003610375795", "type" : "keyword", "source" : "twitter", "monitoring_type" : false, "search_type" : false, "searchparameter" : "sachin", "geo" : "india", "language" : "en" } ] }
the query column array type column.
during searching make hash again form matching follows
query = {"filterid"=>"5215b40c0ff5fa111e000001", "subfilterid"=>"60728003610375795", "type"=>"keyword", "source"=>"twitter", "monitoring_type"=>false, "search_type" => false, "searchparameter"=>"sachin", "geo"=>"india", "language"=>"en"} @result = statuses.where({query: query})
db.collection.find( { "query": { $elemmatch: { "filterid": "5215b40c0ff5fa111e000001", "subfilterid": "60728003610375795" } } } );
you looking elemmatch
. check out docs