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 indexiçin Schemanesnenizdeki yöntemi çağırırsınız . Durumunuz için şöyle bir şey olacaktır:
mySchema.index({field1: 1, field2: 1}, {unique: true});
1yükseliyor, -1azalıyor olacaktır.
index.
1ve -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!
field1ve field2geç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.