我一直在和Google Cloud Firestore合作。我要将13000+记录从一个导入到一个CSV后端。我将使用这个集合来查找auto-completion和。
我很想知道这是否是个好主意。另外,我还在寻找一些建议,说明我应该使用哪些技术来尽可能高效地检索这些数据。我正在使用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百万Ops)。我只是写了一些数据,并在数据表中显示了这些记录。我使用了以下查询:
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;
});
});
}这如何使我的阅读限制超过?
发布于 2018-05-16 03:41:13
当您使用Cloud时,集合中的文档数并不重要。这实际上是它更大的好处之一:不管一个集合中有多少文档,查询都需要同样的时间。
假设您添加了130个文档,(为了示例起见)需要1秒才能从其中获得10个文档。无论集合中有多少文档,这都是您将获得的性能。对于1300个文档,它也需要1秒,13K需要1秒,13M也要1秒。
更多的开发人员遇到的问题是如何使他们的用例符合Firestore的API。例如:搜索字符串的唯一方法是使用所谓的前缀匹配,不支持全文搜索。这意味着您可以搜索Prop*并找到Property Management Company,但*Man*不能找到它。
https://stackoverflow.com/questions/50362082
复制相似问题