Membuat Indeks Multifield di Mongoose / MongoDB


93

Saya mencoba mencari dokumentasi, tetapi tidak berhasil, tentang cara membuat indeks multi-bidang di Mongoosejs. Secara khusus saya memiliki dua bidang yang perlu diindeks dan unik. Apa contoh skema luwak yang mengindeks dua bidang bersama-sama?

Jawaban:


198

Anda memanggil indexmetode pada Schemaobjek Anda untuk melakukan itu seperti yang ditunjukkan di sini . Untuk kasus Anda, ini akan menjadi seperti:

mySchema.index({field1: 1, field2: 1}, {unique: true});

2
Ini disebut Indeks Hitung di mongodb. Jadi itu membuat indeks sebagai bidang1 dan bidang1 + bidang2. Jadi ini adalah indeks pertama menurut bidang1 dan kemudian di dalam bidang1 sehubungan dengan bidang 2
— Ketan Ghumatkar

1
apa arti dari 1 setelah field1: dan field2:?
— Damon Yuan

9
@DamonYuan Mereka mengatur urutan kolom dalam indeks. 1sedang naik, -1akan turun.
— JohnnyHK

1
@KetanGumatkar Ini didasarkan pada urutan bidang yang terdaftar di objek di panggilan ke index.
— JohnnyHK

2
1dan -1 menentukan kunci indeks naik atau turun di bidang indeks. Saya menemukan dokumen http://mongodb.github.io/node-mongodb-native/2.1/tutorials/create-indexes/
— Thai Ha


0

Omong-omong, jawaban yang diterima salah, sesuai https://stackoverflow.com/a/52553550/129300 Anda harus membungkus nama bidang dalam tanda kutip tunggal, yaitu:

mySchema.index({'field1': 1, 'field2': 1}, {unique: true});

Hari bahagia!


Kunci objek di JS dapat dihapus tanda kutipnya selama itu adalah pengenal yang valid secara sintaksis. field1dan field2merupakan pengenal yang valid. field1.footidak, misalnya.
— Gus

-3
    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"
   ..
   ..

  }
}

Saya telah menguji dengan data sampel itu berfungsi sempurna seperti yang diharapkan.


Kami tidak ingin bahwa dengan shell mongooses kami ingin itu dengan skema js node
— Rohit Nishad
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.