关于如何定义复合索引的快速问题
根据定义,我可以创建一个复合索引,如下所示,它将为student_id
和class_id
创建一个复合索引。
db.students.createIndex({"student_id":1,"class_id":1});
然而,如果我给出类似的东西会发生什么
db.students.createIndex({"student_id,class_id":1})
语法有效,它接受索引,但我不确定如何创建索引。
有什么想法吗?
答案 0 :(得分:1)
如果你这样做然后只运行db.students.getIndexes()
,你会发现为一个名为student_id,class_id
的字段创建了索引 - 这正是你要求的,即不是复合索引而是在其名称中带逗号的字段上的索引。
{
"v" : 1,
"key" : {
"student_id,class_id" : 1.0
},
"name" : "student_id,class_id_1",
"ns" : "tmp.students"
}