一个关于如何定义复合索引的快速问题
根据定义,我可以创建如下复合索引,它将为student_id
和class_id
创建复合索引。
db.students.createIndex({"student_id":1,"class_id":1});
但是如果我给出这样的东西会发生什么呢
db.students.createIndex({"student_id,class_id":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"
}