Chcete-li provést textové vyhledávání ve všech polích, musíte nejprve vytvořit textový index ve všech polích.
jak uvádí dokumentace mongodb:"Chcete-li umožnit textové vyhledávání ve všech polích s obsahem řetězce, použijte specifikátor zástupných znaků ($**) k indexování všech polí obsahujících řetězec."
pokud pracujete uvnitř mongo shellu (který spouštíte z příkazového řádku voláním 'mongo'), pak to můžete udělat pomocí tohoto příkazu, kde 'collection' je název kolekce v db, kterou chcete použít.
db.collection.createIndex({ "$**": "text" },{ name: "TextIndex" })
druhý objekt, tj. {name:"TextIndex"}
, je volitelný...ve skutečnosti nemusíte indexu pojmenovávat, protože na kolekci může být pouze jeden textový index (najednou...můžete indexy vypustit a vytvořit nové, pokud chcete).
jakmile vytvoříte textový index ve všech polích, můžete provést jednoduché textové vyhledávání pomocí následujícího objektu dotazu:{ $text : { $search: <your string> } }
takže pokud píšete javascriptovou funkci, můžete udělat něco jako:
var cursor = db.collection(<collection_name>).find({ $text: { $search: <your string> } });
Další informace o různých způsobech ovládání vyhledávání naleznete v dokumentaci mongodb o textovém vyhledávání zde