<!--

Welcome to Apache Airflow!  For a smooth issue process, try to answer the following questions.
Don't worry if they're not all applicable; just try to include what you can :-)

If you need to include code snippets or logs, please put them in fenced code
blocks.  If they're super-long, please use the details tag like
<details><summary>super-long log</summary> lots of stuff </details>

Please delete these comment blocks before submitting the issue.

-->

**Description**

<!-- A short description of your feature -->

Make `MongoToS3Operator` `mongo_collection` parameter templated.

**Use case / motivation**

<!-- What do you want to happen?

Rather than telling us how you might implement this solution, try to take a
step back and describe what you are trying to achieve.

-->

This would allow for passing a templated mongo collection from other tasks, such as a mongo collection used as data destination by using `S3Hook`. For instance, we could use templated mongo collection to write data for different dates in different collections by using: `mycollection.{{ ds_nodash }}`.

**Are you willing to submit a PR?**

<!--- We accept contributions! -->

Yes.

**Related Issues**

<!-- Is there currently another issue associated with this? -->

N/A

tests/providers/amazon/aws/transfers/test_mongo_to_s3.py
self.assertEqual(self.mock_operator.template_fields, ['s3_key', 'mongo_query'])
    def test_render_template(self):
        ti = TaskInstance(self.mock_operator, DEFAULT_DATE)
        ti.render_templates()
        expected_rendered_template = {'$lt': '2017-01-01T00:00:00+00:00Z'}
        self.assertDictEqual(expected_rendered_template, getattr(self.mock_operator, 'mongo_query'))
    @mock.patch('airflow.providers.amazon.aws.transfers.mongo_to_s3.MongoHook')
    @mock.patch('airflow.providers.amazon.aws.transfers.mongo_to_s3.S3Hook')
    def test_execute(self, mock_s3_hook, mock_mongo_hook):
        operator = self.mock_operator
        mock_mongo_hook.return_value.find.return_value = iter(MOCK_MONGO_RETURN)
        mock_s3_hook.return_value.load_string.return_value = True
        operator.execute(None)
        mock_mongo_hook.return_value.find.assert_called_once_with(
            mongo_collection=MONGO_COLLECTION, query=MONGO_QUERY, mongo_db=None
        )
        op_stringify = self.mock_operator._stringify
        op_transform = self.mock_operator.transform
        s3_doc_str = op_stringify(op_transform(MOCK_MONGO_RETURN))
        mock_s3_hook.return_value.load_string.assert_called_once_with(
            string_data=s3_doc_str, key=S3_KEY, bucket_name=S3_BUCKET, replace=False
        )