Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
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.

Importante

Este comando solo se puede ejecutar en una implementación alojada en MongoDB Atlas.

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á 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 privilegiada sobre la base de datos o colección:

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

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

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

$listSearchIndexes Devuelve una matriz de documentos. Cada documento de la matriz contiene los siguientes campos:

Campo
Tipo
Descripción

id

string

Identificador único para el í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, consulte Sintaxis de definición de índice de búsqueda.

statusDetail

arreglo de documentos

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

statusDetail.[n].hostname

string

Nombre de host del correspondiente mongot.

statusDetail.[n].status

string

Estado del índice en el correspondiente mongot.

statusDetail.[n].queryable

booleano

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

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 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 incrustados 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 obtener más información, consulte Detalles de asignación 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 la asignación de sinónimos puede admitir consultas en 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 esté en el estado BUILDING:

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

  • La búsqueda de MongoDB no puede seguir el ritmo de los cambios de indexación de 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.

DOES_NOT_EXIST

El índice no existe.

Un índice en el estado DOES_NOT_EXIST siempre no es consultable.

DELETING

MongoDB está borrando el índice.

Un índice en el estado DELETING siempre no es consultable.

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.

PENDING

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

Un índice en el estado PENDING siempre no es consultable.

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 ingresar al 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 devuelve todos los índices de búsqueda de MongoDB 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 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