# File lib/new_relic/agent/datastores/mongo/metric_translator.rb, line 13
          def self.operation_and_collection_for(name, payload)
            payload ||= {}

            if collection_in_selector?(payload)
              command_key = command_key_from_selector(payload)
              name        = get_name_from_selector(command_key, payload)
              collection  = get_collection_from_selector(command_key, payload)
            else
              collection = payload[:collection]
            end

            # The 1.10.0 version of the mongo driver renamed 'remove' to
            # 'delete', but for metric consistency with previous versions we
            # want to keep it as 'remove'.
            name = 'remove' if name.to_s == 'delete'

            if self.find_one?(name, payload)
              name = 'findOne'
            elsif self.find_and_remove?(name, payload)
              name = 'findAndRemove'
            elsif self.find_and_modify?(name, payload)
              name = 'findAndModify'
            elsif self.create_indexes?(name, payload)
              name = 'createIndexes'
            elsif self.create_index?(name, payload)
              name = 'createIndex'
              collection = self.collection_name_from_index(payload)
            elsif self.drop_indexes?(name, payload)
              name = 'dropIndexes'
            elsif self.drop_index?(name, payload)
              name = 'dropIndex'
            elsif self.re_index?(name, payload)
              name = 'reIndex'
            elsif self.group?(name, payload)
              name = 'group'
              collection = collection_name_from_group_selector(payload)
            elsif self.rename_collection?(name, payload)
              name = 'renameCollection'
              collection = collection_name_from_rename_selector(payload)
            end

            [name.to_s, collection]
          rescue => e
            NewRelic::Agent.logger.debug("Failure during Mongo metric generation", e)
            nil
          end