за да извършите текстово търсене във всички полета, първо трябва да създадете текстов индекс за всички полета.
както се посочва в документацията на mongodb, „За да позволите търсене на текст във всички полета със съдържание на низ, използвайте спецификатора на заместващи знаци ($**), за да индексирате всички полета, които съдържат низово съдържание.“
ако работите в обвивката mongo (която изпълнявате от командния ред, като извикате 'mongo'), тогава можете да го направите с тази команда, където 'колекция' е името на колекцията в базата данни, която искате да използвате.
db.collection.createIndex({ "$**": "text" },{ name: "TextIndex" })
вторият обект, т.е. {name:"TextIndex"}
, е по избор... всъщност не е необходимо да давате име на индекса, тъй като може да има само един текстов индекс на колекция (в даден момент... можете да пуснете индекси и да създадете нови, ако искате).
след като създадете текстов индекс за всички полета, можете да направите просто текстово търсене със следния обект на заявка:{ $text : { $search: <your string> } }
така че, ако пишете функция на javascript, можете да направите нещо като:
var cursor = db.collection(<collection_name>).find({ $text: { $search: <your string> } });
за повече информация относно различните начини за управление на търсенето, вижте документацията на mongodb за търсене на текст тук