Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # pymongo
- mapTotalTimeListened = Code("function(){emit(this._id, {totalTimeListened: this.value1.totalTimeListened});}")
- mapTimeListened = Code("function(){emit(this._id, {radio:this.value2.radio, timeListened: this.value2.timeListened});}")
- reduceJoin = Code("function(key, values){
- var tmps = [];
- var results = {};
- values.forEach(function(v){
- var out = {};
- if(v.radio !== undefined )out['radio'] = v.radio;
- if(v.timeListened !== undefined ) out['timeListened'] = v.timeListened;
- if(v.totalTimeListened !== undefined ) out['totalTimeListened'] = v.totalTimeListened;
- if(Object.keys(out).length > 0) tmps.push(out);
- });
- if(Object.keys(tmps).length > 0) results['fucks'] = tmps;
- return results;}")
- db.result1.map_reduce(mapTotalTimeListened, reduceJoin, 'joinedTest2',reduce_output=True, merge_output=True)
- db.result2.map_reduce(mapTimeListened, reduceJoin,"joinedTest2", reduce_output=True, merge_output = True)
- // js script
- var db = connect('127.0.0.1:27017/local');
- mapTotalTimeListened = function(){
- emit(this._id, {totalTimeListened: this.value1.totalTimeListened});}
- mapTimeListened = function(){
- emit(this._id, {radio:this.value2.radio, timeListened: this.value2.timeListened});}
- reduceFine = function(key, values){
- var tmps = [];
- var results = {};
- values.forEach(function(v){
- var out = {};
- if(v.radio !== undefined )out['radio'] = v.radio;
- if(v.timeListened !== undefined ) out['timeListened'] = v.timeListened;
- if(v.totalTimeListened !== undefined ) out['totalTimeListened'] = v.totalTimeListened;
- if(Object.keys(out).length > 0) tmps.push(out);
- });
- if(Object.keys(tmps).length > 0) results['fucks'] = tmps;
- return results;
- }
- db.result1.mapReduce(mapTotalTimeListened, reduceFine, {out : {reduce:'joinedRes'}});
- db.result2.mapReduce(mapTimeListened, reduceFine, {out : {reduce:'joinedRes'}});
- inputcollection result1:
- {'_id': {'_id': ObjectId('5cb743e78447b053746613b5'),
- 'country': 'America',
- 'first_name': 'pnklbxzojo',
- 'gender': 1,
- 'last_name': 'gnzdollddp',
- 'vehicule': 'Ford Flex'},
- 'value1': {'totalTimeListened': 690238990000.0}}
- inputcollection result2:
- {'_id': {'_id': ObjectId('5cb743e78447b053746613b5'),
- 'country': 'America',
- 'first_name': 'pnklbxzojo',
- 'gender': 1,
- 'last_name': 'gnzdollddp',
- 'vehicule': 'Ford Flex'},
- 'value2': {'radio': 'Soundtrack', 'timeListened': 4331162000.0}}
- pymongo output:
- {'_id': {'_id': ObjectId('5cb743e78447b053746613b5'),
- 'country': 'America',
- 'first_name': 'pnklbxzojo',
- 'gender': 1,
- 'last_name': 'gnzdollddp',
- 'vehicule': 'Ford Flex'},
- 'value': {'radio': 'Soundtrack', 'timeListened': 4331162000.0}}
- js script get this output expected:
- {"_id":{"country":"America",
- "_id":"5cb743e78447b053746613b5",
- "gender":1,
- "vehicule":"Ford Flex",
- "last_name":"gnzdollddp",
- "first_name":"pnklbxzojo"},
- "value":{"fucks":[{"radio":"Soundtrack","timeListened":4331162000},
- {"totalTimeListened":690238990000}]}}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement