📜  firestore 返回数组 Nodejs 的内容 - Javascript (1)

📅  最后修改于: 2023-12-03 15:00:46.120000             🧑  作者: Mango

Firestore 返回数组 Nodejs 的内容 - Javascript

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 数组进行排序,我们可以利用数组排序的方法进行排序操作。