View on GitHub


Test Coverage
Text Search

.. default-domain:: mongodb

.. contents:: On this page
   :backlinks: none
   :depth: 1
   :class: singlecol
MongoDB provides :manual:`text indexes </core/index-text/>`
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
  `Atlas Search <>`_
  which is a more powerful and flexible text search solution.
  The rest of this page discusses text indexes and not Atlas 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.

.. code-block:: ruby

  client =[ '' ], :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.

.. code-block:: ruby

  client =[ '' ], :database => 'test')
      { '$text' => 
        { '$search' => 'garden', '$caseSensitive' => false }
    ).each do |document|
      #=> Yields a BSON::Document.