To, czego chcesz, powinno być możliwe dzięki indeksom tekstowym od wersji 3.1.7 MongoDB. Zobacz SERVER-19557 dla szczegółów. Wcześniejsze wersje nie radzą sobie ze znakami diakrytycznymi.
Konfiguracja indeksu tekstowego jest dość prosta:po prostu utwórz indeks dla wszystkich pól, które chcesz przeszukiwać – może być tylko jeden indeks tekstowy na kolekcję:
db.yourCollection.createIndex(
{"name.text":"text","foo":"text"},
{"default_language":"french"}
)
Teraz, aby przeszukać indeks, wystarczy wykonać następujące czynności:
db.yourCollection.find(
{ $text: {$search:"Olimpic"} }
)
co powinno dać oczekiwane rezultaty.
hth