aby przeprowadzić wyszukiwanie tekstowe we wszystkich polach, musisz najpierw utworzyć indeks tekstowy we wszystkich polach.
jak wskazuje dokumentacja mongodb:„Aby zezwolić na wyszukiwanie tekstowe we wszystkich polach zawierających ciąg znaków, użyj specyfikatora symboli wieloznacznych ($**), aby zindeksować wszystkie pola zawierające ciąg znaków”.
jeśli pracujesz wewnątrz powłoki mongo (którą wykonujesz z wiersza poleceń, wywołując „mongo”), możesz to zrobić za pomocą tego polecenia, gdzie „collection” jest nazwą kolekcji w bazie danych, której chcesz użyć.
db.collection.createIndex({ "$**": "text" },{ name: "TextIndex" })
drugi obiekt, tj. {name:"TextIndex"}
, jest opcjonalne... w rzeczywistości nie musisz nadawać indeksowi nazwy, ponieważ może istnieć tylko jeden indeks tekstowy na kolekcję (w danym momencie... możesz usunąć indeksy i utworzyć nowe, jeśli chcesz).
po utworzeniu indeksu tekstowego we wszystkich polach możesz przeprowadzić proste wyszukiwanie tekstowe za pomocą następującego obiektu zapytania:{ $text : { $search: <your string> } }
więc jeśli piszesz funkcję javascript, możesz zrobić coś takiego:
var cursor = db.collection(<collection_name>).find({ $text: { $search: <your string> } });
aby uzyskać więcej informacji na temat różnych sposobów kontrolowania wyszukiwania, zapoznaj się z dokumentacją mongodb na temat wyszukiwania tekstu tutaj