我的收藏包含 2000 万个文档,如下所示:
summary(tmp)
我为 {
"_id" : ObjectId("5f76a5588a93be772c14cc0f"),
"list_id" : ObjectId("5f76a53e8a93be772c14cc06"),
"email" : "email1@yahoo.com",
"date_created" : ISODate("2020-10-02T03:58:16.739Z")
}
{
"_id" : ObjectId("5f76adb88a93be772c14cc3e"),
"list_id" : ObjectId("5f76a53e8a93be772c14cc06"),
"email" : "email2@yahoo.com",
"date_created" : ISODate("2020-10-02T03:59:11.229Z")
}
{
"_id" : ObjectId("5f76adb88a93be772c14cc38"),
"list_id" : ObjectId("5ed93f71c130ea5378977d4f"),
"email" : "email3@yahoo.com",
"date_created" : ISODate("2020-10-02T06:13:08.120Z")
}
...
和 list_id
创建了 2 个单独的索引。两者都在上升。
我针对该集合运行的大多数查询包括同时查询 date_created
和 list_id
。例如
date_created
我的理解是 MongoDB 将仅使用上述索引之一,具体取决于它确定哪个索引更优。
我的问题是,如果我有一个由 db.collection
.find({
list_id: ObjectId('608af31fb1d9113db9bbd069'),
date_created: {$gte: new Date('2021-04-30T07:00:00Z')}
})
和 list_id
组成的复合索引,上述查询的运行速度会比仅使用上述索引之一更快吗?