我正在根据四个字段(员工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);
})
}
`
我期望在控制台上出现错误,要求我创建索引,但是我什么也没得到,查询工作正常。
答案 0 :(得分:2)
由于您仅在查询中使用等式,因此Firestore可以基于自动生成的单字段索引执行zig-zag-merge-join。
您可以在字段组合上添加索引,这通常可以加快查询速度,但这不是必需的。
要了解更多信息,请查看How do queries work in Cloud Firestore?系列中的Getting to know Cloud Firestore。