diff --git a/source/includes/read/distinct.rb b/source/includes/read/distinct.rb
new file mode 100644
index 00000000..7aa64a06
--- /dev/null
+++ b/source/includes/read/distinct.rb
@@ -0,0 +1,44 @@
+require 'bundler/inline'
+
+gemfile do
+  source 'https://rubygems.org'
+  gem 'mongo'
+end
+
+uri = '<connection string>'
+
+Mongo::Client.new(uri) do |client|
+  # Access the database and collection
+  # start-db-coll
+  database = client.use('sample_restaurants')
+  collection = database[:restaurants]
+  # end-db-coll
+
+  # Retrieves distinct values of the "borough" field
+  # start-distinct
+  results = collection.distinct('borough')
+  results.each do |value|
+    puts value
+  end
+  # end-distinct
+
+  # Retrieves distinct "borough" field values for documents with a "cuisine" value of "Italian"
+  # start-distinct-with-query
+  results = collection.distinct('borough', { cuisine: 'Italian' })
+  results.each do |value|
+    puts value
+  end
+  # end-distinct-with-query
+
+  # Retrieves distinct "name" field values for documents matching the "borough" and "cuisine" fields query
+  # and uses primary preferred read preference
+  # start-distinct-with-opts
+  filter = { borough: 'Bronx', cuisine: 'Pizza' }
+  options = { read: { mode: :primary_preferred } }
+  results = collection.distinct('name', filter, options)
+  
+  results.each do |value|
+    puts value
+  end
+  # end-distinct-with-opts
+end
diff --git a/source/read.txt b/source/read.txt
index 9ced31ea..e248219f 100644
--- a/source/read.txt
+++ b/source/read.txt
@@ -26,4 +26,5 @@ Read Data from MongoDB
    Specify a Query </read/specify-a-query>
    Specify Documents to Return </read/specify-documents-to-return>
    Specify Fields to Return </read/project>
+   Distinct Field Values </read/distinct>
    Count Documents </read/count>
diff --git a/source/read/distinct.txt b/source/read/distinct.txt
new file mode 100644
index 00000000..d6d142ed
--- /dev/null
+++ b/source/read/distinct.txt
@@ -0,0 +1,182 @@
+.. _ruby-distinct:
+
+==============================
+Retrieve Distinct Field Values
+==============================
+
+.. contents:: On this page
+   :local:
+   :backlinks: none
+   :depth: 2
+   :class: singlecol
+
+.. facet::
+   :name: genre
+   :values: reference
+ 
+.. meta::
+   :keywords: read, unique, code example
+
+Overview
+--------
+
+In this guide, you can learn how to use the {+driver-short+} to retrieve the
+distinct values of a specified field across a collection.
+
+Within a collection, documents might contain different values for a
+single field. For example, one document in a ``restaurants`` collection has a
+``borough`` value of ``'Manhattan'``, and another has a ``borough`` value of
+``'Queens'``. You can use the {+driver-short+} to retrieve all the unique values
+that a field contains across multiple documents in a collection.
+
+Sample Data
+~~~~~~~~~~~
+
+The examples in this guide use the ``restaurants`` collection in the ``sample_restaurants``
+database from the :atlas:`Atlas sample datasets </sample-data>`. To access this collection
+from your {+language+} application, create a ``Mongo::Client`` object that connects to
+an Atlas cluster and assign the following values to your ``database`` and ``collection``
+variables:
+
+.. literalinclude:: /includes/read/distinct.rb
+   :language: ruby
+   :dedent:
+   :start-after: start-db-coll
+   :end-before: end-db-coll
+
+To learn how to create a free MongoDB Atlas cluster and load the sample datasets, see the
+:atlas:`Get Started with Atlas </getting-started>` guide.
+
+Retrieve Distinct Values
+------------------------
+
+To retrieve the distinct values for a specified field, call the ``distinct``
+method and pass in the name of the field you want to find distinct values for.
+
+Retrieve Values Across a Collection
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The following example retrieves the distinct values of the ``borough`` field in
+the ``restaurants`` collection:
+
+.. io-code-block::
+   :copyable:
+
+   .. input:: /includes/read/distinct.rb
+      :start-after: start-distinct
+      :end-before: end-distinct
+      :language: ruby
+      :dedent:
+
+   .. output::
+      :visible: false
+
+      Bronx
+      Brooklyn
+      Manhattan
+      Missing
+      Queens
+      Staten Island
+
+The operation returns an array that stores each distinct ``borough`` field value. Although
+several documents have the same value in the ``borough`` field, each value appears in the
+results only once.
+
+Retrieve Values Across Specified Documents
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can provide a **query filter** to the ``distinct`` method to find the distinct
+field values across a subset of documents in a collection. A query filter is an expression
+that specifies search criteria used to match documents in an operation. 
+
+.. TODO: To learn more about creating a query filter, see the :ref:`ruby-specify-query` guide.
+
+The following example retrieves the distinct values of the ``borough`` field for
+all documents that have a ``cuisine`` field value of ``'Italian'``:
+
+.. io-code-block::
+   :copyable:
+
+   .. input:: /includes/read/distinct.rb
+      :start-after: start-distinct-with-query
+      :end-before: end-distinct-with-query
+      :language: ruby
+      :dedent:
+
+   .. output:: 
+      :visible: false
+
+      Bronx
+      Brooklyn
+      Manhattan
+      Queens
+      Staten Island
+
+Modify Distinct Behavior
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can modify the behavior of the ``distinct`` method by passing a
+``Hash`` object that specifies option values. The following table describes the
+options you can set to customize the operation:
+
+.. list-table::
+   :widths: 30 70
+   :header-rows: 1
+
+   * - Option
+     - Description
+
+   * - ``collation`` 
+     - | The collation to use for the operation.
+       | **Type**: ``Hash``
+
+   * - ``max_time_ms``
+     - | The maximum amount of time in milliseconds that the operation can run.
+       | **Type**: ``Integer``
+
+   * - ``read``
+     - | The read preference to use for the operation. To learn more, see
+         :manual:`Read Preference </core/read-preference/>` in the {+mdb-server+} manual.
+       | **Type**: ``Hash``
+   
+   * - ``session``
+     - | The session to use for the operation.
+       | **Type**: ``Session``
+
+The following example retrieves the distinct values of the ``name`` field for
+all documents that have a ``borough`` field value of ``'Bronx'`` and a
+``cuisine`` field value of ``'Pizza'``. It also sets the ``read`` option,
+which instructs the operation to use a ``primary_preferred``
+read preference:
+
+.. io-code-block::
+   :copyable:
+
+   .. input:: /includes/read/distinct.rb
+      :start-after: start-distinct-with-opts
+      :end-before: end-distinct-with-opts
+      :language: ruby
+      :dedent:
+
+   .. output:: 
+      :visible: false
+
+      $1.25 Pizza
+      18 East Gunhill Pizza
+      2 Bros
+      Aenos Pizza
+      Alitalia Pizza Restaurant
+      Amici Pizza And Pasta
+      Angie'S Cafe Pizza
+      Anthony & Joe'S Pizza
+      Anthony'S Pizza
+      Antivari Pizza
+      Arturo'S Pizza
+      Bartow Pizza
+      ...
+
+API Documentation
+-----------------
+
+To learn more about the ``distinct`` method, see the
+`API documentation. <{+api-root+}/Mongo/Collection.html#distinct-instance_method>`__ 
\ No newline at end of file