Sto cercando di trovare documentazione, inutilmente, su come creare indici multi-campo in Mongoosejs. In particolare ho due campi che devono essere indicizzati e univoci. Qual è un esempio di schema mangusta che indicizza due campi insieme?
Risposte:
Chiami il index
metodo sul tuo Schema
oggetto per farlo come mostrato qui . Per il tuo caso sarebbe qualcosa del tipo:
mySchema.index({field1: 1, field2: 1}, {unique: true});
1
sta salendo, -1
sarebbe discendente.
index
.
1
e -1
specifica una chiave di indice crescente o decrescente nel campo dell'indice. Ho trovato i documenti http://mongodb.github.io/node-mongodb-native/2.1/tutorials/create-indexes/
La definizione degli indici a livello di schema è necessaria quando si creano indici composti.
animalSchema.index({ name: 1, type: -1 });
Riferimento: http://mongoosejs.com/docs/guide.html#indexes
A proposito, la risposta accettata è sbagliata, come per https://stackoverflow.com/a/52553550/129300 dovresti racchiudere i nomi dei campi tra virgolette singole, ad esempio:
mySchema.index({'field1': 1, 'field2': 1}, {unique: true});
Giorno felice!
field1
e field2
sono identificatori validi. field1.foo
non lo è, per esempio.
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"
..
..
}
}
Ho testato con dati di esempio che funziona perfettamente come previsto.