code: func (servers *mongoServers) BestFit(serverTags []bson.D) *mongoServer {
  	var best *mongoServer
  	for _, next := range servers.slice {
  		if best == nil {
  			best = next
  			best.RLock()
  			if serverTags != nil && !next.info.Mongos && !best.hasTags(serverTags) {
  				best.RUnlock()
  				best = nil
  			}
  			continue
  		}
  		next.RLock()
  		swap := false
  		switch {
  		case serverTags != nil && !next.info.Mongos && !next.hasTags(serverTags):
  			// Must have requested tags.
  		case next.info.Master != best.info.Master:
  			// Prefer slaves.
  			swap = best.info.Master
  		case absDuration(next.pingValue-best.pingValue) > 15*time.Millisecond:
  			// Prefer nearest server.
  			swap = next.pingValue < best.pingValue
  		case len(next.liveSockets)-len(next.unusedSockets) < len(best.liveSockets)-len(best.unusedSockets):
  			// Prefer servers with less connections.
  			swap = true
  		}
  		if swap {
  			best.RUnlock()
  			best = next
  		} else {
  			next.RUnlock()
  		}
  	}
  	if best != nil {
  		best.RUnlock()
  	}
  	return best
  }
docs: // BestFit returns the best guess of what would be the most interesting
  // server to perform operations on at this point in time.