Просмотр исходного кода

move update deduplication to filterAndLimit method

Brian Gough 11 лет назад
Родитель
Сommit
fa1e890282
1 измененных файлов с 10 добавлено и 12 удалено
  1. 10 12
      services/track-changes/app/coffee/MongoPackManager.coffee

+ 10 - 12
services/track-changes/app/coffee/MongoPackManager.coffee

@@ -202,18 +202,6 @@ module.exports = MongoPackManager =
 				# the changeset into parts
 				# the changeset into parts
 				updates = MongoPackManager._filterAndLimit(updates, extraSet, filterFn, null)
 				updates = MongoPackManager._filterAndLimit(updates, extraSet, filterFn, null)
 				#console.log 'extra updates after filterandlimit', updates
 				#console.log 'extra updates after filterandlimit', updates
-				# remove duplicates
-				seen = {}
-				updates = updates.filter (item) ->
-					key = item.doc_id + ' ' + item.v
-					#console.log 'key is', key
-					if seen[key]
-						return false
-					else
-						seen[key] = true
-						return true
-				#console.log 'extra updates are', updates
-
 			tail.toArray (err, result2) ->
 			tail.toArray (err, result2) ->
 				if err?
 				if err?
 					return callback err, updates.sort timeOrder
 					return callback err, updates.sort timeOrder
@@ -252,5 +240,15 @@ module.exports = MongoPackManager =
 		# update results with extra docs, after filtering and limiting
 		# update results with extra docs, after filtering and limiting
 		filtered = extra.filter(filterFn)
 		filtered = extra.filter(filterFn)
 		newResults = results.concat filtered
 		newResults = results.concat filtered
+		# remove duplicates
+		seen = {}
+		newResults = newResults.filter (item) ->
+			key = item.doc_id + ' ' + item.v
+			#console.log 'key is', key
+			if seen[key]
+				return false
+			else
+				seen[key] = true
+			return true
 		newResults.slice(0, limit) if limit?
 		newResults.slice(0, limit) if limit?
 		return newResults
 		return newResults