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 Atlas Search indexa una colección específica.

Importante

Este comando solo se puede ejecutar en una implementación alojada en MongoDB Atlas y requiere un nivel de clúster Atlas de al menos10 M.

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 identificador del índice sobre el que se devolverá información.

name

string

Opcional

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

No se pueden especificar id y name a la vez. Si se omiten los campos id y name, $listSearchIndexes devuelve información sobre todos los índices de Atlas Search de la colección.

Si su implementación aplica control de acceso, el usuario que ejecuta $listSearchIndexes debe tener la 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, consulte Estados del índice de búsqueda en Atlas.

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 en que se creó la definición del índice actual.

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

conjunto de documentos

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

statusDetail.[n].hostname

string

Nombre de host del mongot correspondiente.

statusDetail.[n].status

string

Estado del índice en el mongot correspondiente.

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 mongot correspondiente.

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

statusDetail.[n].stagedIndex

Documento

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

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

synonymMappingStatus

string

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

  • BUILDING

  • FAILED

  • READY

El estado devuelto es un resumen de las asignaciones de sinónimos en cada mongot individual.

synonymMappingStatusDetail

conjunto de documentos

Contiene el estado de las asignaciones 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 en la asignación de sinónimos, si corresponde. Solo aparece si el valor status para esta asignación 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 las asignaciones de sinónimos del índice en el mongot correspondiente. 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 de índice con la que se está creando esta generación de índice.

definitionVersion.version

entero

Número de versión que se utiliza para la generación del índice en el mongot correspondiente. Al actualizar una definición de índice, el índice actualizado se compila 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 construye 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 en la asignación de sinónimos, si corresponde. Solo aparece si el valor status para esta asignación de sinónimos es FAILED.

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

Estado
Descripción

BUILDING

Los siguientes escenarios pueden provocar que un índice esté en el estado BUILDING:

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

  • Atlas Search 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:

  • En el caso de un índice nuevo, Atlas Search no puede utilizar el índice para realizar consultas hasta que se complete la creación del índice.

  • Para un índice existente, Atlas Search utiliza la definición de índice anterior 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

Atlas está eliminando el índice.

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

FAILED

Error en la creación del índice. 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

Atlas aún no ha comenzado a desarrollar el índice.

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

READY

El índice está listo y puede admitir consultas.

Un índice en el estado READY siempre es consultable.

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 es consultable.

Cambiado en la versión 7.0.3: Este comando genera 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 Atlas 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 id proporcionado:

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 Atlas 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 id proporcionado:

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

Para utilizar un mongosh método para ver los índices de Atlas Search,db.collection.getSearchIndexes() consulte.

Para crear índices de búsqueda de Atlas, consulte:

Volver

$listSampledQueries

En esta página