3

关于如何定义复合索引的快速问题

根据定义,我可以创建一个如下的复合索引,它将为student_idand创建一个复合索引class_id

db.students.createIndex({"student_id":1,"class_id":1});

但是如果我给这样的东西会发生什么

db.students.createIndex({"student_id,class_id":1})

语法有效并且它接受索引,但我不确定如何创建索引。

有什么想法吗 ?

4

1 回答 1

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"
}
于 2016-08-16T04:02:52.907 回答