107 votes

Création d'index multi-champs dans Mongoose / MongoDB

J'essaie de trouver de la documentation, en vain, sur la façon de créer des index multi-champs dans Mongoosejs. En particulier, j'ai deux champs qui doivent être indexés et uniques. Quel est un exemple de schéma Mongoose qui indexe deux champs ensemble ?

229voto

JohnnyHK Points 61191

Vous appelez le index sur votre Schema pour faire cela comme indiqué aquí . Dans votre cas, ce serait quelque chose comme :

mySchema.index({field1: 1, field2: 1}, {unique: true});

12voto

Krumb Points 161

La définition des index au niveau du schéma est nécessaire lors de la création d'index composés.

animalSchema.index({ name: 1, type: -1 });

Référence : http://mongoosejs.com/docs/guide.html#indexes

-4voto

user2517035 Points 1
    Following command can be used to create compound index for nested json:
    db.ACCOUNT_collection.createIndex({"account.id":1,"account.customerId":1},{unique:1}) 
Mongo json structure is like :
{"_id":"648738"
 "account": { 
    "id": "123",
    "customerId": 7879,
    "name": "test"
   ..
   ..

  }
}

J'ai testé avec un échantillon de données et cela fonctionne parfaitement comme prévu.

-5voto

Fer Martin Points 898

D'ailleurs, la réponse acceptée est fausse, conformément à https://stackoverflow.com/a/52553550/129300 vous devez mettre les noms des champs entre guillemets simples, c'est-à-dire :

mySchema.index({'field1': 1, 'field2': 1}, {unique: true});

Bonne journée !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X