Tôi đang cố gắng tìm tài liệu, nhưng vô ích, về cách tạo chỉ mục đa trường trong Mongoosejs. Đặc biệt, tôi có hai trường cần được lập chỉ mục và duy nhất. Lược đồ mongoose ví dụ lập chỉ mục hai trường với nhau là gì?
Câu trả lời:
Bạn gọi index
phương thức trên Schema
đối tượng của mình để thực hiện điều đó như được hiển thị ở đây . Đối với trường hợp của bạn, nó sẽ giống như:
mySchema.index({field1: 1, field2: 1}, {unique: true});
1
đang tăng dần, -1
sẽ giảm dần.
index
.
1
và -1
chỉ định một khóa chỉ mục tăng dần hoặc giảm dần trên trường chỉ mục. Tôi đã tìm thấy tài liệu http://mongodb.github.io/node-mongodb-native/2.1/tutorials/create-indexes/
Việc xác định các chỉ mục ở cấp giản đồ là cần thiết khi tạo các chỉ mục ghép.
animalSchema.index({ name: 1, type: -1 });
Nhân tiện, câu trả lời được chấp nhận là sai, theo https://stackoverflow.com/a/52553550/129300, bạn nên đặt tên trường trong dấu ngoặc kép, tức là:
mySchema.index({'field1': 1, 'field2': 1}, {unique: true});
Ngày hạnh phúc!
field1
và field2
là số nhận dạng hợp lệ. field1.foo
chẳng hạn.
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"
..
..
}
}
Tôi đã thử nghiệm với dữ liệu mẫu, nó hoạt động hoàn hảo như mong đợi.