【发布时间】:2018-12-01 11:27:27
【问题描述】:
在 Firestore 中,如何在不为每个键创建索引的情况下执行涉及映射中键的复合查询?
例如,考虑一个包含博客文章的集合,每个博客文章都有类别。
Post {
title: ..
...
categories: {
cats: true
puppies: true
}
}
为了以分页方式查询特定类别的帖子,我们会这样做:
let query = db.collection(`/posts`)
.where(`categories.${categoryId}`, '==', true)
.orderBy('createdAt')
.startAfter(lastDate)
.limit(5);
但这似乎需要每个类别的复合索引(categories.<categoryId> 和createdAt)。有没有办法解决这个问题?
在我的例子中,为每个类别创建复合索引是不可行的,因为类别是用户生成的,并且很容易超过 200(Firestore 中复合索引的限制)。
【问题讨论】:
标签: javascript firebase google-cloud-firestore