我正在尝试对字段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());
});
})
有什么建议吗?
发布于 2020-08-16 14:19:44
我将非常直截了当地说:您不仅使用了Fi还原错误,而且使用了任何数据库错误。
如前所述,Firestore不提供任何检查字段是否存在的查询。但这并不意味着您不能查询有字段的文档。
Firestore也没有“通配符”,但这并不意味着不能查询所有的值.
因此:当您查询某个字段时,Firestore只会返回包含该字段的文档。
另外:您可以使用值为NULL的“大于”的查询----任何值都大于NULL。
因此,要获得所有有字段“延迟”的文档
db.collection("assistencia").where("Retard", ">", /000)
这将从字面上返回集合中所有具有非空值“”字段的文档。使用这种技术是非常非常不推荐的。它不会扩大规模。我做过这样一件事:一次极不愉快地从一种数据结构转移到另一种数据结构,而不是面向客户端。
获取具有特定值的所有“延迟”文档
db.collection("assistencia").where("Retard", "==", "0qSzBxVimwRlurLHNzXp")
您只能以数据库设计的方式使用数据库。
发布于 2020-08-16 11:24:57
Firestore不提供检查字段是否存在的任何查询。您的数据模型应该考虑到这一事实。
如果要检查字符串在其他字符串中是否可用,可以添加列表字段并使用数组包含查询来查找列表中存在该字符串的文档。如果字段名为"items":
db.collection("assistencia").where("items", "array-contains", "0qSzBxVimwRlurLHNzXp")
然后,您将得到包含您想要的数据的文档,并且您可以检查其他字段,以确定您要查找的文档中的值。
https://stackoverflow.com/questions/63440925
复制