Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

$listSearchIndexes (etapa de agregación)

$listSearchIndexes

Nuevo en la versión 7.0: (También disponible a partir de la versión 6.0.7)

Devuelve información sobre los existentes MongoDB Search índices en una colección o vista especificada.

Sintaxis del comando:

db.<collection>.aggregate(
[
{
$listSearchIndexes:
{
id: <indexId>,
name: <indexName>
}
}
]
)

$listSearchIndexes toma cualquiera de los siguientes campos:

Campo
Tipo
Necesidad
Descripción

id

string

Opcional

El id del índice sobre el que se desea obtener información.

name

string

Opcional

El nombre del índice sobre el que se devolverá la información.

No se pueden especificar tanto id como name. Si omites ambos campos, el id y el name, $listSearchIndexes devuelve información sobre todos los índices de MongoDB Search en la colección.

Si tu implementación aplica control de acceso, el usuario que ejecute $listSearchIndexes debe tener el listSearchIndexes acción de privilegio en la base de datos o colección:

{
resource: {
db : <database>,
collection: <collection>
},
actions: [ "listSearchIndexes" ]
}

El rol integrado read proporciona el privilegio de listSearchIndexes. El siguiente ejemplo otorga el rol read en la base de datos qa:

db.grantRolesToUser(
"<user>",
[ { role: "read", db: "qa" } ]
)

$listSearchIndexes devuelve un arreglo de documentos. Cada documento en el arreglo contiene los siguientes campos:

Campo
Tipo
Descripción

id

string

Identificador único del índice.

name

string

Nombre del índice.

status

string

Estado del índice. Para más información, consulta Estados de índices de MongoDB Search.

queryable

booleano

Indica si el índice está listo para ser consultado.

latestDefinitionVersion

Documento

Describe la versión del índice.

latestDefinitionVersion.version

entero

Número de versión asociado con la definición del índice. Cuando se actualiza una definición de índice, el número de versión se incrementa automáticamente.

latestDefinitionVersion.createdAt

fecha

Hora cuando se creó la definición actual del índice.

latestDefinition

Documento

La definición más reciente del índice. Para más información, consulta Sintaxis de la Definición del Índice de Búsqueda.

statusDetail

arreglo de documentos

Contiene el estado del índice en cada host de búsqueda (mongot).

statusDetail.[n].hostname

string

Hostname del mongot correspondiente. MongoDB representa este campo como <replSetName>.<server.name>.<server.id>.

Puede especificar el server.name para una implementación local en su archivo de configuración.

statusDetail.[n].status

string

Estado del índice en el correspondiente mongot.

statusDetail.[n].queryable

booleano

Indica si el índice está listo para ser query en el correspondiente mongot.

statusDetail.[n].mainIndex

Documento

Contiene información de estado sobre el índice activo en el correspondiente mongot.

Para obtener más detalles, consulta Detalles del estado del índice.

statusDetail.[n].stagedIndex

Documento

Contiene información de estado sobre un índice que se está construyendo en segundo plano en el mongot correspondiente. Este campo solo aparece si se está creando un nuevo índice para actualizar un índice activo existente.

Para obtener más detalles, consulta Detalles del estado del índice.

synonymMappingStatus

string

Estado de los mapeos de sinónimos del índice. Este campo solo aparece si el índice tiene sinónimos definidos. Puede ser uno de los siguientes valores:

  • BUILDING

  • FAILED

  • READY

El estado devuelto es un resumen de los mapeos de sinónimos en cada mongot individual.

synonymMappingStatusDetail

arreglo de documentos

Contiene el estado de los mapeos de sinónimos del índice en cada host de búsqueda (mongot). Este campo (y sus subcampos) solo aparecen si el índice tiene sinónimos definidos.

synonymMappingStatusDetail.[n].status

string

Estado de la asignación de sinónimos correspondiente en todos los procesos de mongot.

synonymMappingStatusDetail.[n].queryable

booleano

Indica si la asignación de sinónimos correspondiente puede admitir query en todos los procesos mongot.

message

string

Describe un error para el mapeo de sinónimos, si corresponde. Solo aparece si el status para este mapeo de sinónimos es FAILED.

La siguiente tabla describe los campos integrados de los siguientes documentos: - statusDetail.[mongot].mainIndex - statusDetail.[mongot].stagedIndex

Los campos describen el estado del índice en un mongot específico.

Campo
Tipo
Descripción

status

string

El estado de la generación del índice en el mongot correspondiente.

queryable

booleano

Indica si la generación del índice está lista para ser consultada en el mongot correspondiente.

synonymMappingStatus

string

El estado de los mapeos de sinónimos de la generación de índices en el mongot correspondiente. Solo está presente si el índice tiene sinónimos definidos.

synonymMappingStatusDetails

Documento

Contiene el estado de los mapeos de sinónimos del índice en el correspondiente mongot. Este campo (y sus subcampos) solo aparecen si el índice tiene sinónimos definidos.

Para más información, consulta Detalles de mapeo de sinónimos.

definitionVersion

Documento

Describe la versión de definición del índice con la que se está compilando esta generación de índices.

definitionVersion.version

entero

Número de versión que la generación del índice está utilizando en el correspondiente mongot. Cuando se actualiza una definición de índice, el índice actualizado se construye con un número de versión incrementado.

definitionVersion.createdAt

fecha

Hora en que se creó la definición del índice.

definition

Documento

La definición con la que se está construyendo este índice.

La siguiente tabla describe los campos embebidos de los siguientes objetos:

  • statusDetail.mainIndex.synonymMappingStatusDetails.<synonymMapping>

  • statusDetail.stagedIndex.synonymMappingStatusDetails<synonymMapping>

Campo
Tipo
Descripción

status

string

Estado para la mapeo de sinónimos en el proceso correspondiente mongot.

queryable

booleano

Indica si el mapeo de sinónimos puede admitir query sobre el proceso mongot correspondiente.

message

string

Describe un error para el mapeo de sinónimos, si corresponde. Solo aparece si el status para este mapeo de sinónimos es FAILED.

El campo status en la salida de $listSearchIndexes puede ser uno de los siguientes:

Estado
Descripción

BUILDING

Los siguientes escenarios pueden provocar que un índice se encuentre en el estado BUILDING:

  • MongoDB está creando el índice o reconstruyéndolo después de una edición.

  • MongoDB Search no puede mantenerse al día con los cambios de indexación en la colección. En este caso, Atlas reconstruye el índice en segundo plano.

Cuando el índice está en el estado BUILDING:

  • Para un nuevo índice, MongoDB Search no puede utilizar el índice para consultas hasta que la creación del índice esté completa.

  • Para un índice existente, MongoDB Search utiliza la antigua definición del índice para las consultas hasta que se complete la reconstrucción del índice.

Un índice en el estado BUILDING puede ser consultable o no consultable.

DOES_NOT_EXIST

El índice no existe.

Un índice en el estado DOES_NOT_EXIST nunca se puede consultar.

DELETING

MongoDB está borrando el índice.

Un índice en el estado DELETING nunca se puede consultar.

FAILED

La creación de índices falló. Los índices pueden entrar en el estado FAILED debido a una definición de índice no válida.

Un índice en el estado FAILED puede ser consultable o no consultable.

PENDING

MongoDB aún no ha comenzado a crear el índice.

Un índice en el estado PENDING nunca se puede consultar.

READY

El índice está listo y puede soportar queries.

Un índice en el estado READY siempre se puede consultar.

STALE

El índice es consultable pero ha dejado de replicar datos de la colección indexada. Las búsquedas en el índice pueden devolver datos desactualizados.

Los índices pueden entrar en el estado STALE debido a errores de replicación.

Un índice en el estado STALE siempre se puede consultar.

Cambiado en la versión 7.1: este comando arroja un error cuando no se ejecuta en Atlas.

db.names.aggregate( [
{ $listSearchIndexes: { } }
] )
MongoServerError: PlanExecutor error during aggregation :: caused by :: Search index commands are only supported with Atlas.

En versiones anteriores, este comando devuelve un resultado vacío cuando no se ejecuta en Atlas.

Estos ejemplos demuestran cómo realizar las siguientes acciones:

El siguiente ejemplo retorna todos los índices de búsqueda de MongoDB Search en la colección movies:

db.movies.aggregate(
[
{
$listSearchIndexes: { }
}
]
)

Salida de muestra:

[
{
id: '6524096020da840844a4c4a7',
name: 'default',
status: 'BUILDING',
queryable: true,
latestDefinitionVersion: {
version: 2,
createdAt: ISODate("2023-10-09T14:51:57.355Z")
},
latestDefinition: {
mappings: { dynamic: true },
storedSource: { include: [ 'awards.text' ] }
},
statusDetail: [
{
hostname: 'atlas-n1cm1j-shard-00-02',
status: 'BUILDING',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:08:32.000Z")
},
definition: { mappings: { dynamic: true, fields: {} } }
},
stagedIndex: {
status: 'PENDING',
queryable: false,
definitionVersion: {
version: 1,
createdAt: ISODate("2023-10-09T14:51:29.000Z")
},
definition: {
mappings: { dynamic: true, fields: {} },
storedSource: true
}
}
},
{
hostname: 'atlas-n1cm1j-shard-00-01',
status: 'BUILDING',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:08:32.000Z")
},
definition: { mappings: { dynamic: true, fields: {} } }
},
stagedIndex: {
status: 'PENDING',
queryable: false,
definitionVersion: {
version: 1,
createdAt: ISODate("2023-10-09T14:51:29.000Z")
},
definition: {
mappings: { dynamic: true, fields: {} },
storedSource: true
}
}
},
{
hostname: 'atlas-n1cm1j-shard-00-00',
status: 'BUILDING',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:08:32.000Z")
},
definition: { mappings: { dynamic: true, fields: {} } }
}
}
]
},
{
id: '65240be420da840844a4d077',
name: 'synonym_mappings',
status: 'READY',
queryable: true,
latestDefinitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:19:16.305Z")
},
latestDefinition: {
mappings: {
dynamic: true,
fields: {
fullplot: { type: 'string' }
}
},
synonyms: [
{
name: 'synonym_mapping',
analyzer: 'lucene.english',
source: { collection: 'synonyms' }
}
]
},
synonymMappingStatus: 'READY',
synonymMappingStatusDetail: [
{
synonym_mapping: {
status: 'READY',
queryable: true
}
}
],
statusDetail: [
{
hostname: 'atlas-n1cm1j-shard-00-02',
status: 'READY',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:19:16.000Z")
},
definition: {
mappings: {
dynamic: true,
fields: {
fullplot: {
type: 'string',
indexOptions: 'offsets',
store: true,
norms: 'include'
}
}
},
synonyms: [
{
name: 'synonym_mapping',
analyzer: 'lucene.english',
source: { collection: 'synonyms' }
}
]
},
synonymMappingStatus: 'READY',
synonymMappingStatusDetail: [
{
synonym_mapping: {
status: 'READY',
queryable: true
}
}
]
}
},
{
hostname: 'atlas-n1cm1j-shard-00-01',
status: 'READY',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:19:16.000Z")
},
definition: {
mappings: {
dynamic: true,
fields: {
fullplot: {
type: 'string',
indexOptions: 'offsets',
store: true,
norms: 'include'
}
}
},
synonyms: [
{
name: 'synonym_mapping',
analyzer: 'lucene.english',
source: { collection: 'synonyms' }
}
]
},
synonymMappingStatus: 'READY',
synonymMappingStatusDetail: [
{
synonym_mapping: {
status: 'READY',
queryable: true
}
}
]
}
},
{
hostname: 'atlas-n1cm1j-shard-00-00',
status: 'READY',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:19:16.000Z")
},
definition: {
mappings: {
dynamic: true,
fields: {
fullplot: {
type: 'string',
indexOptions: 'offsets',
store: true,
norms: 'include'
}
}
},
synonyms: [
{
name: 'synonym_mapping',
analyzer: 'lucene.english',
source: { collection: 'synonyms' }
}
]
},
synonymMappingStatus: 'READY',
synonymMappingStatusDetail: [
{
synonym_mapping: {
status: 'READY',
queryable: true
}
}
]
}
}
]
}
]

El siguiente ejemplo devuelve el índice llamado synonym-mappings en la colección movies:

db.movies.aggregate(
[
{
$listSearchIndexes:
{
name: "synonym-mappings"
}
}
]
)

Salida de muestra:

[
{
id: '65240be420da840844a4d077',
name: 'synonym_mappings',
status: 'READY',
queryable: true,
latestDefinitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:19:16.305Z")
},
latestDefinition: {
mappings: {
dynamic: true,
fields: {
fullplot: { type: 'string' }
}
},
synonyms: [
{
name: 'synonym_mapping',
analyzer: 'lucene.english',
source: { collection: 'synonyms' }
}
]
},
synonymMappingStatus: 'READY',
synonymMappingStatusDetail: [
{
synonym_mapping: {
status: 'READY',
queryable: true
}
}
],
statusDetail: [
{
hostname: 'atlas-n1cm1j-shard-00-02',
status: 'READY',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:19:16.000Z")
},
definition: {
mappings: {
dynamic: true,
fields: {
fullplot: {
type: 'string',
indexOptions: 'offsets',
store: true,
norms: 'include'
}
}
},
synonyms: [
{
name: 'synonym_mapping',
analyzer: 'lucene.english',
source: { collection: 'synonyms' }
}
]
},
synonymMappingStatus: 'READY',
synonymMappingStatusDetail: [
{
synonym_mapping: {
status: 'READY',
queryable: true
}
}
]
}
},
{
hostname: 'atlas-n1cm1j-shard-00-01',
status: 'READY',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:19:16.000Z")
},
definition: {
mappings: {
dynamic: true,
fields: {
fullplot: {
type: 'string',
indexOptions: 'offsets',
store: true,
norms: 'include'
}
}
},
synonyms: [
{
name: 'synonym_mapping',
analyzer: 'lucene.english',
source: { collection: 'synonyms' }
}
]
},
synonymMappingStatus: 'READY',
synonymMappingStatusDetail: [
{
synonym_mapping: {
status: 'READY',
queryable: true
}
}
]
}
},
{
hostname: 'atlas-n1cm1j-shard-00-00',
status: 'READY',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:19:16.000Z")
},
definition: {
mappings: {
dynamic: true,
fields: {
fullplot: {
type: 'string',
indexOptions: 'offsets',
store: true,
norms: 'include'
}
}
},
synonyms: [
{
name: 'synonym_mapping',
analyzer: 'lucene.english',
source: { collection: 'synonyms' }
}
]
},
synonymMappingStatus: 'READY',
synonymMappingStatusDetail: [
{
synonym_mapping: {
status: 'READY',
queryable: true
}
}
]
}
}
]
}
]

El siguiente ejemplo devuelve el índice de búsqueda con el valor proporcionado de id:

db.movies.aggregate(
[
{
$listSearchIndexes:
{
id: "6524096020da840844a4c4a7"
}
}
]
)

Salida de muestra:

[
{
id: '6524096020da840844a4c4a7',
name: 'default',
status: 'BUILDING',
queryable: true,
latestDefinitionVersion: {
version: 2,
createdAt: ISODate("2023-10-09T14:51:57.355Z")
},
latestDefinition: {
mappings: { dynamic: true },
storedSource: { include: [ 'awards.text' ] }
},
statusDetail: [
{
hostname: 'atlas-n1cm1j-shard-00-02',
status: 'BUILDING',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:08:32.000Z")
},
definition: { mappings: { dynamic: true, fields: {} } }
},
stagedIndex: {
status: 'PENDING',
queryable: false,
definitionVersion: {
version: 1,
createdAt: ISODate("2023-10-09T14:51:29.000Z")
},
definition: {
mappings: { dynamic: true, fields: {} },
storedSource: true
}
}
},
{
hostname: 'atlas-n1cm1j-shard-00-01',
status: 'BUILDING',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:08:32.000Z")
},
definition: { mappings: { dynamic: true, fields: {} } }
},
stagedIndex: {
status: 'PENDING',
queryable: false,
definitionVersion: {
version: 1,
createdAt: ISODate("2023-10-09T14:51:29.000Z")
},
definition: {
mappings: { dynamic: true, fields: {} },
storedSource: true
}
}
},
{
hostname: 'atlas-n1cm1j-shard-00-00',
status: 'BUILDING',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:08:32.000Z")
},
definition: { mappings: { dynamic: true, fields: {} } }
}
}
]
}
]

Para utilizar el controlador de MongoDB Node.js para agregar una etapa de $listSearchIndexes a una canalización de agregación, utilice el Operador $listSearchIndexes en un objeto de canalización.

Nota

El driver de Node.js proporciona un método asistente, listSearchIndexes(), que realiza la misma operación que la etapa $listSearchIndexes de la pipeline. Para obtener más información, consulta la página Índices en la documentación del driver de Node.js de MongoDB.

El siguiente ejemplo devuelve todos los índices de búsqueda de MongoDB Search en una colección:

const pipeline = [{ $listSearchIndexes: {} }];
const cursor = collection.aggregate(pipeline);
return cursor;

El siguiente ejemplo devuelve el índice llamado synonym-mappings:

const pipeline = [{ $listSearchIndexes: { name: "synonym-mappings" } }];
const cursor = collection.aggregate(pipeline);
return cursor;

El siguiente ejemplo devuelve el índice de búsqueda con el valor proporcionado de id:

const pipeline = [{ $listSearchIndexes: { id: "6524096020da840844a4c4a7" } }];
const cursor = collection.aggregate(pipeline);
return cursor;

Para usar un método mongosh para ver los índices de búsqueda de MongoDB, consulta db.collection.getSearchIndexes().

Para crear MongoDB Search índices, consulta:

Volver

$listSampledQueries

En esta página