para fazer uma pesquisa de texto em todos os campos, primeiro você deve criar um índice de texto em todos os campos.
como a documentação do mongodb indica, "Para permitir a pesquisa de texto em todos os campos com conteúdo de string, use o especificador curinga ($**) para indexar todos os campos que contêm conteúdo de string."
se você estiver trabalhando dentro do shell mongo (que você executa a partir da linha de comando chamando 'mongo'), então você pode fazer isso com este comando, onde 'collection' é o nome da coleção no banco de dados que você deseja usar.
db.collection.createIndex({ "$**": "text" },{ name: "TextIndex" })
o segundo objeto, ou seja,
{name:"TextIndex"}
, é opcional... na verdade você não precisa dar um nome ao índice, já que só pode haver um único índice de texto por coleção (de cada vez... você pode descartar índices e criar novos se quiser). depois de criar um índice de texto em todos os campos, você pode fazer uma pesquisa de texto simples com o seguinte objeto de consulta:
{ $text : { $search: <your string> } }
então, se você estiver escrevendo uma função javascript, você pode fazer algo como:
var cursor = db.collection(<collection_name>).find({ $text: { $search: <your string> } });
para obter mais informações sobre as várias maneiras de controlar a pesquisa, consulte a documentação do mongodb sobre pesquisa de texto aqui