Я безрезультатно намагаюся знайти документацію про те, як створити багатопольові індекси в Mongoosejs. Зокрема, у мене є два поля, які потрібно проіндексувати та унікально. Що таке приклад схеми мангуста, яка індексує два поля разом?
Відповіді:
Ви викликаєте index
метод на своєму Schema
об'єкті, щоб зробити це, як показано тут . Для вашого випадку це було б приблизно так:
mySchema.index({field1: 1, field2: 1}, {unique: true});
1
зростає, -1
буде низхідним.
index
.
1
і -1
вказує зростаючий або спадаючий ключ індексу в полі індексу. Я знайшов документи http://mongodb.github.io/node-mongodb-native/2.1/tutorials/create-indexes/
Визначення індексів на рівні схеми необхідно при створенні складених індексів.
animalSchema.index({ name: 1, type: -1 });
До речі, прийнята відповідь є неправильною, оскільки згідно з https://stackoverflow.com/a/52553550/129300 ви повинні обертати імена полів в одинарні лапки, тобто:
mySchema.index({'field1': 1, 'field2': 1}, {unique: true});
Щасливий день!
field1
і field2
є дійсними ідентифікаторами. field1.foo
не є, наприклад.
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"
..
..
}
}
Я перевірив на вибіркових даних, що він чудово працює, як очікувалося.