Próbuję znaleźć dokumentację, bezskutecznie, na temat tworzenia indeksów wielopolowych w Mongoosejs. W szczególności mam dwa pola, które muszą być indeksowane i unikalne. Jaki jest przykładowy schemat mangusty, który indeksuje razem dwa pola?
Odpowiedzi:
Wywołujesz index
metodę na swoim Schema
obiekcie, aby to zrobić, jak pokazano tutaj . W twoim przypadku byłoby to coś takiego:
mySchema.index({field1: 1, field2: 1}, {unique: true});
1
wznosi się, -1
będzie zstępował.
index
.
1
i -1
określa rosnący lub malejący klucz indeksu w polu indeksu. Znalazłem dokumenty http://mongodb.github.io/node-mongodb-native/2.1/tutorials/create-indexes/
Definiowanie indeksów na poziomie schematu jest konieczne przy tworzeniu indeksów złożonych.
animalSchema.index({ name: 1, type: -1 });
Nawiasem mówiąc, przyjęta odpowiedź jest błędna, ponieważ na https://stackoverflow.com/a/52553550/129300 należy zawijać nazwy pól w pojedyncze cudzysłowy, czyli:
mySchema.index({'field1': 1, 'field2': 1}, {unique: true});
Szczęśliwy dzień!
field1
i field2
są prawidłowymi identyfikatorami. field1.foo
nie jest na przykład.
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"
..
..
}
}
Przetestowałem na przykładowych danych, że działa idealnie zgodnie z oczekiwaniami.