Mongoosejs'de çok alanlı indekslerin nasıl oluşturulacağına dair boşuna bir belge bulmaya çalışıyorum. Özellikle endekslenmesi ve benzersiz olması gereken iki alanım var. İki alanı birlikte indeksleyen örnek bir firavun faresi şeması nedir?
Yanıtlar:
Burada gösterildiği gibi bunu yapmak index
için Schema
nesnenizdeki yöntemi çağırırsınız . Durumunuz için şöyle bir şey olacaktır:
mySchema.index({field1: 1, field2: 1}, {unique: true});
1
yükseliyor, -1
azalıyor olacaktır.
index
.
1
ve -1
dizin alanında artan veya azalan bir dizin anahtarı belirtir. Dokümanları buldum http://mongodb.github.io/node-mongodb-native/2.1/tutorials/create-indexes/
Dizinleri şema düzeyinde tanımlamak, bileşik dizinler oluştururken gereklidir.
animalSchema.index({ name: 1, type: -1 });
Bu arada, kabul edilen cevap yanlış, https://stackoverflow.com/a/52553550/129300 uyarınca alan adlarını tek tırnak içine almanız gerekir, yani:
mySchema.index({'field1': 1, 'field2': 1}, {unique: true});
Mutlu gün!
field1
ve field2
geçerli tanımlayıcılardır. field1.foo
örneğin değil.
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"
..
..
}
}
Örnek verilerle test ettim, beklendiği gibi mükemmel çalışıyor.