Firestore不要求创建索引,但查询有效

时间:2019-04-06 12:58:54

标签: javascript google-cloud-firestore

我正在根据四个字段(员工ID,年,月和日)执行复杂的查询。该查询有效,但不要求我创建索引。如果我这样离开就可以了吗?

我尝试删除一些字段,例如,仅按员工ID和出勤年份查询,但仍然可以正常工作。我在控制台上没有收到任何警报。

`

function findAttendance(employee_id, date, callback) {
    db.collection('attendance')
        .where('employee.id', '==', employee_id)
        .where('date.day', '==', date.getDate())
        .where('date.month', '==', date.getMonth())
        .where('date.year', '==', date.getFullYear())
        .get().then((snapshot) => {
            callback(snapshot);
        })
}

`

我期望在控制台上出现错误,要求我创建索引,但是我什么也没得到,查询工作正常。

1 个答案:

答案 0 :(得分:2)

由于您仅在查询中使用等式,因此Firestore可以基于自动生成的单字段索引执行zig-zag-merge-join

可以在字段组合上添加索引,这通常可以加快查询速度,但这不是必需的。

要了解更多信息,请查看How do queries work in Cloud Firestore?系列中的Getting to know Cloud Firestore