首页 > 解决方案 > Firestore 查询文档的字段 ID

问题描述

我正在尝试对字段 ID 进行查询过滤。我想返回所有包含字段 id 的文档,然后是它的值。

在此处输入图像描述

在这个例子中,我想做一些类似的事情:

db.collection("assistencia").where(">>> 0qSzBxVimwRlurLHNzXp EXIST <<<<") <=== I don't know what I need to put here
.get()
.then(function(querySnapshot) {
    querySnapshot.forEach(function(doc) {
        // doc.data() is never undefined for query doc snapshots
        console.log(doc.id, " => ", doc.data());
    });
})

有什么建议吗?

标签: javascriptfirebasegoogle-cloud-firestore

解决方案


我会非常直言不讳:您不仅使用错误的 Firestore,而且使用错误的任何数据库。

如前所述,Firestore 不提供任何检查字段是否存在的查询。但这并不意味着您不能查询具有字段的文档。

Firestore 也没有“通配符”,但这并不意味着您不能查询所有值......

因此:当您查询某个字段时,Firestore 将返回具有该字段的文档。

另外:您可以使用值为 NULL 的“大于”查询 -任何值都比 NULL 大。

因此,要获取所有具有“延迟”字段的文档

db.collection("assistencia").where("Retard", ">", /000)

这将返回该集合中具有非空值的“延迟”字段的所有文档。非常非常不推荐使用这种技术。它不会扩展。我做过这样的事情,从一个数据结构到另一个数据结构的一次性非常hacky传输 - 从来没有面向客户端。

获取具有“延迟”特定值的所有文档

db.collection("assistencia").where("Retard", "==", "0qSzBxVimwRlurLHNzXp")

您只能按照设计使用的方式使用数据库。


推荐阅读