public void TestOutReplaceSharded() { var options = MapReduceOptions.SetOutput(MapReduceOutput.Replace("name", true)); var expected = "{ \"out\" : { \"replace\" : \"name\", \"sharded\" : true } }"; Assert.AreEqual(expected, options.ToJson()); }
public void TestOutReplace() { var options = MapReduceOptions.SetOutput(MapReduceOutput.Replace("name")); var expected = "{ \"out\" : \"name\" }"; Assert.AreEqual(expected, options.ToJson()); }
public void TestOutReplaceWithDatabase() { var options = MapReduceOptions.SetOutput(MapReduceOutput.Replace("database", "name")); var expected = "{ \"out\" : { \"replace\" : \"name\", \"db\" : \"database\" } }"; Assert.AreEqual(expected, options.ToJson()); }
public void UpdateUserNote() { var result = _membersCollection.MapReduce( MapReduceCodeLoader.Load("ResponsesUserNote.map.js"), MapReduceCodeLoader.Load("Notes.reduce.js"), MapReduceOptions.SetOutput(MapReduceOutput.Replace(CollectionNames.Member))); if (result.Ok) { Logger.Info("Map reduce for user note completed"); } else { Logger.Error("Map reduce for user note failed"); } }
private void MapReduce() { var map = string.Format(@" function() {{ var queuedTrack = this; var requestCount = (queuedTrack.User.toLowerCase().indexOf('{0}') == 0) ? 0 : 1; var autoPlayCount = (requestCount==1) ? 0 : 1; emit(queuedTrack.Track.Link, {{ requestCount: requestCount, vetoCount: queuedTrack.Vetoes.length, likeCount: queuedTrack.Likes.length, autoPlayCount: autoPlayCount,lastPlayed: Date.parse(queuedTrack.StartedPlayingDateTime),excluded: queuedTrack.Excluded, track: queuedTrack.Track}}); }}", "autoplay"); const string reduce = @" function(key, values) { var result = {requestCount: 0, vetoCount: 0, likeCount: 0, autoPlayCount: 0, lastPlayed: 0, excluded: false, track: null }; values.forEach(function(value){ result.requestCount += value.requestCount; result.vetoCount += value.vetoCount; result.likeCount += value.likeCount; result.autoPlayCount += value.autoPlayCount; if(result.excluded == false) result.excluded = value.excluded; //waiting until we find at least one play if (value.lastPlayed > result.lastPlayed) result.lastPlayed = value.lastPlayed; if (!result.track) result.track = value.track; }); return result; }"; string finalize = string.Format(@" function(key, value){{ var score = (value.likeCount - value.vetoCount)+1; if (score <= 0) score = 0.001; score = Math.round((score * (Math.random()/{0}))*1000); return {{IsExcluded: value.excluded, Score: score, MillisecondsSinceLastPlay: Date.now()-value.lastPlayed, Track: value.track}}; }}", 3); var options = new MapReduceOptionsBuilder(); options.SetFinalize(finalize); options.SetOutput(MapReduceOutput.Replace(DataCollectionName)); if (queuedTrackDataService.DataCollection.Exists()) { queuedTrackDataService.DataCollection.MapReduce(map, reduce, options).GetResults(); } }