Define Stored Source Fields in Your Atlas Search Index
On this page
The storedSource
option in an Atlas Search index definition specifies the fields in the source document
that Atlas Search must store. You can configure storedSource
to improve query
performance in certain use cases,
as it reduces the need for implicit query time lookup on the backend database.
You can store fields of all Data Types on Atlas Search.
Atlas Search doesn't index stored fields, so you must index the fields separately in order to run queries on them. You can also retrieve stored fields at query time by using the returnStoredSource option.
Note
storedSource
is only available on Atlas clusters running one of
the following versions:
MongoDB 5.0.6+
MongoDB 6.0+
MongoDB 7.0+
To learn more about retrieving the stored fields, see Return Stored Source Fields.
Syntax
The storedSource
option has the following syntax in an index
definition:
{ ..., "storedSource": true | false | { "include" | "exclude": [ "<field-name>", ... ] } }
Options
The storedSource
option takes a boolean value or an object in the index definition.
Boolean Values
Value | Description |
---|---|
true | Specifies that Atlas Search must store all the fields in the
documents. Storing full documents might significantly impact
performance during indexing and querying. To learn more,
see Storing Source Fields. |
false | Specifies that Atlas Search must not store the original source
document. This is the default value for the storedSource
option. |
Object
The storedSource
option object accepts one of the following
fields:
Note
The object must contain either include
or exclude
.
Field | Type | Description |
---|---|---|
include | array of strings | List that contains the field names or dot-separated paths to
fields to store. In addition to the specified fields, Atlas Search
stores _id also by default. |
exclude | array of strings | List that contains the field names or dot-separated paths to
fields to exclude from being stored. If specified, Atlas Search stores
original documents except the fields listed here. |
Examples
The following index examples use the fields in the
sample_mflix.movies
collection to demonstrate how to configure the
fields to store on Atlas Search using the storedSource
option. You can use
the Visual Editor or the JSON Editor in the Atlas UI to configure
the indexes.
Example
The following example stores only the title
and
awards.wins
fields in the documents in the collection.
After you select your preferred configuration method, select
the movies
collection under the sample_mflix
database.
Click Refine Your Index to configure your index.
In the Stored Source Fields section, click Specified.
Select
awards.wins
from the dropdown in the Field Name column and click Add.Click Add Field to specify another field to store.
Select
title
from the dropdown in the Field Name column and click Add.Click Save Changes.
Append lines 5 to 10 from the following example to the index definition to store the fields on Atlas Search. The example uses the dot notation to specify nested fields.
1 { 2 "mappings": { 3 ... 4 }, 5 "storedSource": { 6 "include": [ 7 "title", 8 "awards.wins" 9 ] 10 }, 11 ... 12 }
Example
The following example stores all fields except directors
and imdb.rating
in the documents in the collection. After
you select your preferred configuration method, select the
movies
collection under the sample_mflix
database.
Click Refine Your Index to configure your index.
In the Stored Source Fields section, click All Except Specified.
Select
directors
from the dropdown in the Field Name column and click Add.Click Add Field to specify another field to exclude.
Select
imdb.rating
from the dropdown in the Field Name column and click Add.Click Save Changes.
Append lines 5 to 10 from the following example to the index definition to exclude the fields. The example uses the dot notation to specify nested fields.
1 { 2 "mappings": { 3 ... 4 }, 5 "storedSource": { 6 "exclude": [ 7 "directors", 8 "imdb.rating" 9 ] 10 }, 11 ... 12 }
Example
The following example stores all the fields in the documents
in the collection. After you select your preferred
configuration method, select the movies
collection under
the sample_mflix
database.
Click Refine Your Index to configure your index.
In the Stored Source Fields section, click All.
Click Save Changes.
Append line 5 from the following example to the index definition to store all of the fields.
1 { 2 "mappings": { 3 ... 4 }, 5 "storedSource": true, 6 ... 7 }