         if missing > 0
           existingIds = instances.map (i) -> i._id
           existingIds = nin.concat existingIds  if nin
-
-          klass.some {sourceId: $nin : existingIds}, {limit:missing}, (err, randomInstances)->
+          selector = {}
+          selector = select if select
+          selector.sourceId = {$nin : existingIds}
+          klass.some selector, {limit:missing}, (err, randomInstances)->
             instances = instances.concat randomInstances  unless err
             queue.next()
         else


  @fetchRandomUsers = (callback)-> JAccount.some {}, {limit:10}, callback

  @fetchRandomTopics = (callback)-> JTag.some {}, {limit:10}, callback

  @_fetchUsers = (options={}, callback)->
    {client}   = options

    topic   :
      klass : JTag
      as    : ["developer", "follower", "post"]
      select: status : $nin : ["deleted", "synonym"]

  # Returns topics in following order:
  #   * Active topics in the last day
