📅  最后修改于: 2023-12-03 15:00:46.120000             🧑  作者: Mango
Firestore 是 Google 提供的一种云数据库解决方案。在 Nodejs 中,我们可以通过 Firestore SDK 来访问 Firestore 数据库。其中,当我们查询数据时,Firestore 返回的不仅可能是对象,还可能是数组。该文章主要介绍如何处理 Firestore 返回的数组。
首先,我们来看一下 Firestore 返回数组的查询。当我们在 Firestore 中储存的数据是一个数组时,我们可以通过 array-contains
查询到包含某个值的文档。例如:
const query = await firestore
.collection('myCollection')
.where('myArray', 'array-contains', 'value')
.get();
上述查询返回的 query
结果,就是包含 myArray
属性中包含值为 value
的文档数组。如果没有匹配的文档,query
将会是一个空数组。
接下来,我们来看一下如何处理 Firestore 返回的数组。对于一个包含了多个文档的数组,我们可以使用 forEach
来进行迭代。例如,在 Nodejs 中,我们可以将 Firestore 返回的文档数组进行迭代:
query.forEach((doc) => {
console.log(doc.data());
});
上述代码将会输出所有迭代到的文档数据。如果我们需要对数组进行过滤,我们可以使用 filter
方法来过滤掉不需要的文档。例如:
const filteredDocs = query.docs.filter((doc) => {
return doc.data().myValue !== 'exclude_value';
});
filteredDocs.forEach((doc) => {
console.log(doc.data());
});
上述代码将会将 myValue
不等于 'exclude_value'
的文档输出到控制台。
在 Nodejs 中处理 Firestore 返回的数组,我们需要使用 forEach
进行迭代,通过 filter
方法进行过滤。同时,我们也需要关注到 Firestore 返回的文档数组可能为空数组的情况。如果需要对 Firestore 数组进行排序,我们可以利用数组排序的方法进行排序操作。