I wrote to AWS Support. The only suggestion which they have provided is to use regex search query.
Regex search requires to scan collection instead of using an index, which practically is not a feasible solution at all.
Example of regex search query (use only in case you have a small database):
Inserted only one document as below:
=================================
query: db.stuff.save({"foo":"bar"});
result: WriteResult({ "nInserted" : 1 })
Performed the case insensitive search using regex:
==========================================
query: db.stuff.find( { foo: /^bar$/i } );
result: { "_id" : ObjectId("5f6848669a547e3b679499e2"), "foo" : "bar" }
query: db.stuff.find( { foo: /^BAR$/i } );
result:{ "_id" : ObjectId("5f6848669a547e3b679499e2"), "foo" : "bar" }
Inserted stemmed dcouments of the previous filed value:
================================================
query: db.stuff.save({"foo":"barxyz"});
result: WriteResult({ "nInserted" : 1 })
The search query with regex still works well:
========================================
query: db.stuff.find( { foo: /^BAR$/i } );
result: { "_id" : ObjectId("5f6848669a547e3b679499e2"), "foo" : "bar" }
query: db.stuff.find( { foo: /^bar$/i } );
result: { "_id" : ObjectId("5f6848669a547e3b679499e2"), "foo" : "bar" }
They couldn't tell me when collation or case insensitive index feature will be supported:
I cannot provide ETA in this regard as support of any new feature requires regressive testing by the development and has to go through various stages of software development lifecycle.
Linking MongoDB answer: MongoDB: Is it possible to make a case-insensitive query?