require 'mongo' class MongoCPS_2 attr_accessor :mongo_ip, :mongo_port, :client, :mongo_database, :internal_func, :subs_collection def initialize(mongo_ip, mongo_port, mongo_database) @mongo_database = mongo_database @mongo_ip = mongo_ip @mongo_port = mongo_port client_host = [mongo_ip + ":" + mongo_port] @client = Mongo::Client.new(client_host, :database => mongo_database, :server_selection_timeout => 5) @subs_collection = client[:subscriber] end def get_minsk_fttx_fizlic answ_res_msisdn = [] req_json = {"$and": [{"avps_key.code_key": {"$not": /IN-ACL/}}, {"credentials_key.network_id_key": {"$in": [/ Min/, /Minsk/]}}, {"$or": [{"services_key.code_key": "FR12083"}, {"services_key.code_key": "FR7967"}, {"services_key.code_key": "FR7241"}, {"services_key.code_key": "FR7242"}, {"services_key.code_key": "FR7243"}, {"services_key.code_key": "FR7244"}, {"services_key.code_key": "FR9749"}, {"services_key.code_key": "FR9750"}, {"services_key.code_key": "FR9751"}, {"services_key.code_key": "FR9752"}, {"services_key.code_key": "FR11885"}, {"services_key.code_key": "FR14994"}, {"services_key.code_key": "FR15506"}, {"services_key.code_key": "FR17303"}, {"services_key.code_key": "FR11484"}]}, {"credentials_key.network_id_key": {"$not": /375\d+VL/}}]} subs_collection.find(req_json).each {|row| msisdn = "" username = "" row['credentials_key'].each {|cred| if cred['network_id_key'][/37500\d{7}/] msisdn = cred['network_id_key'] else username = cred['network_id_key'] end } if msisdn != '' && username != '' answ_res_msisdn.push(msisdn + ';' + username) end } answ_res_msisdn end def get_minsk_fttx_zone2 answ_res_msisdn = [] req_json = {'$and': [{'avps_key.code_key': {'$not': /IN-ACL/}}, {'credentials_key.network_id_key': {'$in': [/Min_Nezavisimosti_164/, /Min_Nezavisimosti_181/, /Min_Nezavisimosti_183/, /Min_Nezavisimosti_185/, /Min_Nezavisimosti_42/, /Min_Nezavisimosti_40/, /Min_Nezavisimosti_60/, /Min_Nezavisimosti_44/, /Min_Nezavisimosti_52/, /Min_Nezavisimosti_46/, /Min_Nezavisimosti_48/, /Min_Surganova_52/, /Min_Surganova_64/, /Min_Surganova_76/, /Min_Bogdanovicha_108/, /Min_Bogdanovicha_116/, /Min_Bogdanovicha_114/, /Min_Prityckogo_160/, /Min_Kropotkina_47/, /Storozhevskaya_8/, /Min_Kozlova_2/, /Min_Kozlova_4/, /Min_Kozlova_6/, /Min_Kozlova_5/, /Min_Kozlova_7/, /Min_Kozlova_9/, /Min_Bjaduli_3/, /Min_Bjaduli_5/, /Min_Bjaduli_6/, /Min_Bjaduli_8/, /Min_Bjaduli_12/, /Min_Pervomajskaja_15/, /Min_Pervomajskaja_17/, /Min_Zaharova_19/, /Min_Zaharova_23/, /Min_Zaharova_25/, /Min_Zaharova_27/, /Min_Zaharova_29/, /Min_Zaharova_33/, /Min_Bronevoj_12/, /Min_Bronevoj_13/, /Min_Vojskovoj_10/, /Min_Vojskovoj_13/, /Min_Vojskovoj_14/, /Min_Vojskovoj_15/, /Min_Rumjanceva_13/, /Min_Rumjanceva_14/, /Min_Rumjanceva_15/, /Min_Rumjanceva_17/]}}, {'$or': [{'services_key.code_key': 'FR12083'}, {'services_key.code_key': 'FR7967'}, {'services_key.code_key': 'FR7241'}, {'services_key.code_key': 'FR7242'}, {'services_key.code_key': 'FR7243'}, {'services_key.code_key': 'FR7244'}, {'services_key.code_key': 'FR9749'}, {'services_key.code_key': 'FR9750'}, {'services_key.code_key': 'FR9751'}, {'services_key.code_key': 'FR9752'}, {'services_key.code_key': 'FR11885'}, {'services_key.code_key': 'FR14994'}, {'services_key.code_key': 'FR15506'}, {'services_key.code_key': 'FR17303'}, {'services_key.code_key': 'FR11484'}]}, {'credentials_key.network_id_key': {'$not': /375\d+VL/}}]} subs_collection.find(req_json).each {|row| msisdn = '' username = '' row['credentials_key'].each {|cred| if cred['network_id_key'][/37500\d{7}/] msisdn = cred['network_id_key'] else username = cred['network_id_key'] end } if msisdn != '' && username != '' answ_res_msisdn.push(msisdn + ';' + username) end } answ_res_msisdn end def get_minsk_fttx_zone3_rokos answ_res_msisdn = [] req_json = {'$and': [{'avps_key.code_key': {'$not': /IN-ACL/}}, {'credentials_key.network_id_key': {'$in': [/Rokossovskogo_81/]}}, {'$or': [{'services_key.code_key': 'FR12083'}, {'services_key.code_key': 'FR7967'}, {'services_key.code_key': 'FR7241'}, {'services_key.code_key': 'FR7242'}, {'services_key.code_key': 'FR7243'}, {'services_key.code_key': 'FR7244'}, {'services_key.code_key': 'FR9749'}, {'services_key.code_key': 'FR9750'}, {'services_key.code_key': 'FR9751'}, {'services_key.code_key': 'FR9752'}, {'services_key.code_key': 'FR11885'}, {'services_key.code_key': 'FR14994'}, {'services_key.code_key': 'FR15506'}, {'services_key.code_key': 'FR17303'}, {'services_key.code_key': 'FR11484'}]}, {'credentials_key.network_id_key': {'$not': /375\d+VL/}}]} subs_collection.find(req_json).each {|row| msisdn = '' username = '' row['credentials_key'].each {|cred| if cred['network_id_key'][/37500\d{7}/] msisdn = cred['network_id_key'] else username = cred['network_id_key'] end } if msisdn != '' && username != '' answ_res_msisdn.push(msisdn + ';' + username) end } answ_res_msisdn end def get_minsk_fttx_zone4_mega answ_res_msisdn = [] req_json = {'$and': [{'avps_key.code_key': {'$not': /IN-ACL/}}, {'credentials_key.network_id_key': {'$in': [/Min_Dzerzhinskogo_131/]}}, {'$or': [{'services_key.code_key': 'FR12083'}, {'services_key.code_key': 'FR7967'}, {'services_key.code_key': 'FR7241'}, {'services_key.code_key': 'FR7242'}, {'services_key.code_key': 'FR7243'}, {'services_key.code_key': 'FR7244'}, {'services_key.code_key': 'FR9749'}, {'services_key.code_key': 'FR9750'}, {'services_key.code_key': 'FR9751'}, {'services_key.code_key': 'FR9752'}, {'services_key.code_key': 'FR11885'}, {'services_key.code_key': 'FR14994'}, {'services_key.code_key': 'FR15506'}, {'services_key.code_key': 'FR17303'}, {'services_key.code_key': 'FR11484'}]}, {'credentials_key.network_id_key': {'$not': /375\d+VL/}}]} subs_collection.find(req_json).each {|row| msisdn = '' username = '' row['credentials_key'].each {|cred| if cred['network_id_key'][/37500\d{7}/] msisdn = cred['network_id_key'] else username = cred['network_id_key'] end } if msisdn != '' && username != '' answ_res_msisdn.push(msisdn + ';' + username) end } answ_res_msisdn end def get_minsk_fttx_zone5_koles answ_res_msisdn = [] req_json = {'$and': [{'avps_key.code_key': {'$not': /IN-ACL/}}, {'credentials_key.network_id_key': {'$in': [/Min_Kolesnikova_16/, /Min_Kolesnikova_20/]}}, {'$or': [{'services_key.code_key': 'FR12083'}, {'services_key.code_key': 'FR7967'}, {'services_key.code_key': 'FR7241'}, {'services_key.code_key': 'FR7242'}, {'services_key.code_key': 'FR7243'}, {'services_key.code_key': 'FR7244'}, {'services_key.code_key': 'FR9749'}, {'services_key.code_key': 'FR9750'}, {'services_key.code_key': 'FR9751'}, {'services_key.code_key': 'FR9752'}, {'services_key.code_key': 'FR11885'}, {'services_key.code_key': 'FR14994'}, {'services_key.code_key': 'FR15506'}, {'services_key.code_key': 'FR17303'}, {'services_key.code_key': 'FR11484'}]}, {'credentials_key.network_id_key': {'$not': /375\d+VL/}}]} subs_collection.find(req_json).each {|row| msisdn = '' username = '' row['credentials_key'].each {|cred| if cred['network_id_key'][/37500\d{7}/] msisdn = cred['network_id_key'] else username = cred['network_id_key'] end } if msisdn != '' && username != '' answ_res_msisdn.push(msisdn + ';' + username) end } answ_res_msisdn end def get_minsk_fttx_zone6_all answ_res_msisdn = [] req_json = {'$and': [{'avps_key.code_key': {'$not': /IN-ACL/}}, {'credentials_key.network_id_key': {'$in': [/Min_Nezavisimosti_164/, /Min_Nezavisimosti_181/, /Min_Nezavisimosti_183/, /Min_Nezavisimosti_185/, /Min_Nezavisimosti_42/, /Min_Nezavisimosti_40/, /Min_Nezavisimosti_60/, /Min_Nezavisimosti_44/, /Min_Nezavisimosti_52/, /Min_Nezavisimosti_46/, /Min_Nezavisimosti_48/, /Min_Surganova_52/, /Min_Surganova_64/, /Min_Surganova_76/, /Min_Bogdanovicha_108/, /Min_Bogdanovicha_116/, /Min_Bogdanovicha_114/, /Min_Prityckogo_160/, /Min_Kropotkina_47/, /Storozhevskaya_8/, /Min_Kozlova_2/, /Min_Kozlova_4/, /Min_Kozlova_6/, /Min_Kozlova_5/, /Min_Kozlova_7/, /Min_Kozlova_9/, /Min_Bjaduli_3/, /Min_Bjaduli_5/, /Min_Bjaduli_6/, /Min_Bjaduli_8/, /Min_Bjaduli_12/, /Min_Pervomajskaja_15/, /Min_Pervomajskaja_17/, /Min_Zaharova_19/, /Min_Zaharova_23/, /Min_Zaharova_25/, /Min_Zaharova_27/, /Min_Zaharova_29/, /Min_Zaharova_33/, /Min_Bronevoj_12/, /Min_Bronevoj_13/, /Min_Vojskovoj_10/, /Min_Vojskovoj_13/, /Min_Vojskovoj_14/, /Min_Vojskovoj_15/, /Min_Rumjanceva_13/, /Min_Rumjanceva_14/, /Min_Rumjanceva_15/, /Min_Rumjanceva_17/, /Rokossovskogo_81/, /Min_Dzerzhinskogo_131/, /Min_Kolesnikova_16/, /Min_Kolesnikova_20/]}}, {'$or': [{'services_key.code_key': 'FR12083'}, {'services_key.code_key': 'FR7967'}, {'services_key.code_key': 'FR7241'}, {'services_key.code_key': 'FR7242'}, {'services_key.code_key': 'FR7243'}, {'services_key.code_key': 'FR7244'}, {'services_key.code_key': 'FR9749'}, {'services_key.code_key': 'FR9750'}, {'services_key.code_key': 'FR9751'}, {'services_key.code_key': 'FR9752'}, {'services_key.code_key': 'FR11885'}, {'services_key.code_key': 'FR14994'}, {'services_key.code_key': 'FR15506'}, {'services_key.code_key': 'FR17303'}, {'services_key.code_key': 'FR11484'}]}, {'credentials_key.network_id_key': {'$not': /375\d+VL/}}]} subs_collection.find(req_json).each {|row| msisdn = '' username = '' row['credentials_key'].each {|cred| if cred['network_id_key'][/37500\d{7}/] msisdn = cred['network_id_key'] else username = cred['network_id_key'] end } if msisdn != '' && username != '' answ_res_msisdn.push(msisdn + ';' + username) end } answ_res_msisdn end def get_minsk_fttx_zone7_3last answ_res_msisdn = [] req_json = {'$and': [{'avps_key.code_key': {'$not': /IN-ACL/}}, {'credentials_key.network_id_key': {'$in': [/Rokossovskogo_81/, /Min_Dzerzhinskogo_131/, /Min_Kolesnikova_16/, /Min_Kolesnikova_20/]}}, {'$or': [{'services_key.code_key': 'FR12083'}, {'services_key.code_key': 'FR7967'}, {'services_key.code_key': 'FR7241'}, {'services_key.code_key': 'FR7242'}, {'services_key.code_key': 'FR7243'}, {'services_key.code_key': 'FR7244'}, {'services_key.code_key': 'FR9749'}, {'services_key.code_key': 'FR9750'}, {'services_key.code_key': 'FR9751'}, {'services_key.code_key': 'FR9752'}, {'services_key.code_key': 'FR11885'}, {'services_key.code_key': 'FR14994'}, {'services_key.code_key': 'FR15506'}, {'services_key.code_key': 'FR17303'}, {'services_key.code_key': 'FR11484'}]}, {'credentials_key.network_id_key': {'$not': /375\d+VL/}}]} subs_collection.find(req_json).each {|row| msisdn = '' username = '' row['credentials_key'].each {|cred| if cred['network_id_key'][/37500\d{7}/] msisdn = cred['network_id_key'] else username = cred['network_id_key'] end } if msisdn != '' && username != '' answ_res_msisdn.push(msisdn + ';' + username) end } answ_res_msisdn end def test subs_collection.find({'credentials_key.network_id_key': '375001120416'}).each {|row| p row } p 'ee' end end