MongoDB C# Create Index case insensitive


By default indexes you create in MongoDB are case sensitive.

How to create a case insensitive index using the C# client?


You have to specify the collation when creating the index, and set a collation strength for it.

Here is some sample code:

var mongoConnectionString = "your-mongo-connection-string";

var mongoClient = new MongoClient(mongoConnectionString);
var database = mongoClient.GetDatabase("Inventory");
var productCollection = database.GetCollection<Product>("Products");

var createIndexModel =
    new CreateIndexModel<Product>(Builders<Product>.IndexKeys.Ascending(i => i.ProductReference),
        new CreateIndexOptions
            Collation = new Collation("en", false, CollationCaseFirst.Off, CollationStrength.Secondary)
Author: Dan Dumitru
Last Edit: August 31, 2022

1 Comment

A warning so you don't lose an hour like I did: Atlas Serverless instances do not support collation, it simply does not create the index if you try to use them.

Jan 25, 2023 at 14:03

Your Comment

Feel free to post additional info or improvement suggestions.
Optional, never shown, displays gravatar.

Formatting Tips

This editor uses Markdown to easily add code in your posts.

Triple backticks for full line(s) of code (or indent 4 spaces)

let foo = 'bar';

[link text](

*italic* **bold**

More Tips