我一直在与Google Cloud Firestore
合作。我即将从13000+
导入CSV
记录到firestore后端。我会将此集合用于查找和自动完成目的。
我很好奇并担心这是不是一个好主意。此外,我正在寻找一些建议,我应该使用哪些技术来尽可能高效地检索这些数据。我正在使用Angular 5
并使用AngularFire2
与Firestore建立联系。
文档本身很小,例如:
{
address: {
state: "NSW"
street: "19 XYZ Road"
suburb: "Darling Point"
},
user: {
name: "ABC",
company: "Property Management Company"
}
file_no: "AB996"
}
大多数搜索都基于文档的file_no
属性。
更新
我刚刚将所有13k +记录导入Firestore。这真的很有效率。但是,我有一个问题。导入记录后,我在Firestore控制台上收到消息,表明我的读取操作的每日限制(0.05百万行动0.05)。我只是编写数据并在数据表中显示这些记录。我使用了以下查询:
this.propertyService
.getSnapshotChanges()
.subscribe(properties => {
this.properties = properties;
this.loadingIndicator = false;
});
getSnapshotChanges(): Observable < any > {
return this.afs.collection(this.propertiesCollection).snapshotChanges()
.map((actions) => {
return actions.map((snapshot) => {
const data = snapshot.payload.doc.data();
data.id = snapshot.payload.doc.id;
return data;
});
});
}
这如何使我的阅读限制超过?
答案 0 :(得分:1)
使用Cloud Firestore时,集合中的文档数量无关紧要。这实际上是其更大的好处之一:无论集合中有多少文档,查询都将花费相同的时间。
假设您添加了130个文档和(为了示例),需要1秒钟才能获得10个文档。无论集合中有多少文档,这都是您获得的性能。所以1300张文件也需要1秒,13K需要1秒,而13M则需要1秒。
更多开发人员遇到的问题是使他们的用例适合Firestore的API。例如:搜索字符串的唯一方法是使用所谓的前缀匹配,不支持全文搜索。这意味着您可以搜索Prop*
并找到Property Management Company
,但不能搜索*Man*
来查找它。