Docs Menu
Docs Home
/
MongoDB Atlas
/ / /

Define Stored Source Fields in Your Atlas Search Index

On this page

  • Syntax
  • Options
  • Boolean Values
  • Object
  • Examples

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.

The storedSource option has the following syntax in an index definition:

{
...,
"storedSource": true | false | {
"include" | "exclude": [
"<field-name>",
...
]
}
}

The storedSource option takes a boolean value or an object in the index definition.

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.

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.

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.

  1. Click Refine Your Index to configure your index.

  2. In the Stored Source Fields section, click Specified.

  3. Select awards.wins from the dropdown in the Field Name column and click Add.

  4. Click Add Field to specify another field to store.

  5. Select title from the dropdown in the Field Name column and click Add.

  6. 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.

  1. Click Refine Your Index to configure your index.

  2. In the Stored Source Fields section, click All Except Specified.

  3. Select directors from the dropdown in the Field Name column and click Add.

  4. Click Add Field to specify another field to exclude.

  5. Select imdb.rating from the dropdown in the Field Name column and click Add.

  6. 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.

  1. Click Refine Your Index to configure your index.

  2. In the Stored Source Fields section, click All.

  3. 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}

Back

uuid