For AI agents: a documentation index is available at https://www.mongodb.com/docs/llms.txt — markdown versions of all pages are available by appending .md to any URL path.
Docs Menu

Text Indexes

MongoDB provides text indexes to support text search queries on string content. Text indexes can include any field whose value is a string or an array of string elements.

Note

MongoDB Atlas also provides MongoDB Search which is a more powerful and flexible text search solution. The rest of this page discusses text indexes and not MongoDB Search.

To perform a text search with the Ruby driver, first create a text index with indexes.create_one(). The following command creates a text index on the name field of the restaurants collection in the test database.

client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'test')
client['restaurants'].indexes.create_one( { :name => 'text' } )

Once the text index is created you can use it as part of a query. The following code finds all documents in the restaurants collection which contain the word garden, without case sensitivity.

client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'test')
client[:restaurants].find(
{ '$text' =>
{ '$search' => 'garden', '$caseSensitive' => false }
}
).each do |document|
#=> Yields a BSON::Document.
end