mongodb 中的复合索引语法

compound index syntax in mongodb

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

根据定义,我可以创建一个复合索引,如下所示,它会为 student_idclass_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"
}