Я пытаюсь найти документацию, но безрезультатно, как создавать многопольные индексы в 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"
..
..
}
}
Я проверил образцы данных, он отлично работает, как ожидалось.