1

I use MongoDB via Jongo (a Java client), and I need to sort results in a case-insensitive way for a particular query.

MongoDB's documentation states that an index should be created with a certain collation level, and that the queries should use the same configuration :

db.fruit.find( {type: "apple"} )
        .collation( {locale: 'en', strength: 2} )

Creating the index was easy; but I cannot find where to pass the collation configuration with Jongo's query API.

Find query = myCollection.find(match);  // No .collation() method here

Any idea ?

Olivier Croisier
  • 6,139
  • 25
  • 34

1 Answers1

0

Use a query modifier which can be set on DBCursor by implementing QueryModifier and pass it in the 'with' method:

friends.find().with(new QueryModifier() {
     public void modify(DBCursor cursor) {
         cursor.setCollation(
            Collation.builder().collationStrength(CollationStrength.SECONDARY).
            locale("en").
            build())
     }
}).as(Friend.class);