Textsökning är utformad för att indexera strängar baserat på språkheuristik . Textindexering innefattar två allmänna steg:tokenisering (konvertera en sträng till individuella termer av intresse) följt av stemming (konvertera varje term till en rotform för indexering baserat på språkspecifika regler).
Under tokeniseringssteget vissa tecken (till exempel skiljetecken som @
) klassificeras som ordavgränsare (alias avgränsare ) istället för textinmatning och används för att separera den ursprungliga strängen i termer. Språkspecifika stoppord
(vanliga ord som "den", "är" eller "på" på engelska) exkluderas också från ett textindex.
Sedan din sökfras @@@
består helt av avgränsare, det finns ingen motsvarande post i textindexet.
Om du vill matcha generiska strängmönster bör du använda reguljära uttryck
a> snarare än textsökning. Till exempel:db.getCollection('TestCollection').find({field2:/@@@/})
. Observera dock varningarna för indexanvändning för reguljära uttryck.