Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

683
Vistas
Especifique un nombre de índice con Mongoose

Al definir un esquema Mongoose, a menudo es prudente especificar qué índices deben existir. Dicho esto, en muchos casos nos gustaría controlar el nombre del índice creado, especialmente cuando esos índices son compuestos para que sean comprensibles.

De hecho, al crear ciertos índices, se requiere especificar explícitamente un nombre de índice para evitar exceder el index name length limit .

Dado que se llama a ensureIndex (de forma predeterminada) en los índices definidos en el esquema, ¿cuál es la sintaxis adecuada para controlar el nombre de un índice creado por sureIndex? Supongo que esto es imposible con la sintaxis de índice de nivel de campo, pero seguramente está disponible para índices de nivel de esquema.

 var ExampleSchema = new Schema({ a: String, b: String, c: Date, d: Number, e: { type: [String], index: true } // Field level index }); // We define compound indexes in the schema ExampleSchema.index({a: 1, b: 1, c: 1}); ExampleSchema.index({d:1, e:1}, {unique: true});

Vale la pena señalar que db.collection.ensureIndex está en desuso (por mongodb) y ahora es un alias para db.collection.createIndex .

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Puede establecer el nombre del índice utilizando la propiedad de name del parámetro de opción de la llamada de index :

 ExampleSchema.index({a: 1, b: 1, c: 1}, {name: 'my_index'}); ExampleSchema.index({d:1, e:1}, {name: 'my_other_index', unique: true});

Como se indica en los documentos , el segundo parámetro de index contiene:

Opciones para pasar a la función createIndex() del controlador MongoDB

El documento createIndex enumera todas las configuraciones de opciones posibles, incluido el name .

over 4 years ago · Santiago Trujillo Denunciar

0

Resulta que Mongoose envuelve el controlador Mongo de forma bastante transparente.

Como tal, una llamada a <Mongoose.Schema>.index(<keys>, <options>) puede interpretarse aproximadamente como una llamada a db.collection.ensureIndex(keys, options) o db.collection.createIndex(keys, options) en Mongo 3.0+.

Por lo tanto, la sintaxis requerida (aunque mal documentada) es idéntica a la sintaxis de MongoDB para declaraciones de índice de esquema .

Es decir, declaramos los nombres de la siguiente manera:

 ExampleSchema.index({a: 1, b: 1, c: 1}, {name: "ExampleIndexName_ABC"}); ExampleSchema.index({d:1, e:1}, {unique: true, name: "ExampleCompoundIndexName"});

Las opciones también incluyen:

  • background
  • unique
  • name
  • partialFilterExpression
  • sparse
  • expireAfterSeconds
  • storageEngine

Consulte los documentos oficiales de MongoDB para obtener más detalles.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda