查询特定数组字段中是否存在值 - 集合中的所有文档

集合结构:


users >

  name: 'John'

  phoneNumbers: ['12345', '67891']

如何检查任何电话号码字段中是否存在给定的电话号码(例如:999999)?我试过:


const usersRef = await firestore().collection('users')


const dbResponse = usersRef.where('phoneNumbers', 'array-contains', '999999')

这给我带来了一个巨大的物体,从"_collectionPath": ...


我本来以为会有一个布尔值存在,但没有找到任何东西。我的查询有误吗?


Qyouu
浏览 100回答 1
1回答

开心每一天1111

当您执行任何查询时,您将获得一个包含与查询匹配的每个文档的查询快照。没有其他方法可以查询火库,您的代码将需要处理该查询快照对象。要找出是否有任何文档与查询匹配,而无需实际查看每个文档快照,最简单的方法是简单地检查 QuerySnapshot 的 size 属性是否大于 0。顺便说一句,您的使用不正确。 立即返回集合引用,但不做任何承诺。其中() 将返回查询对象。并且 get() 将返回一个带有查询快照的承诺:awaitfirestore().collection('users')const usersRef = firestore().collection('users')const querySnapshot = await usersRef    .where('phoneNumbers', 'array-contains', '999999')    .get()if (querySnapshot.size > 0) {    // do something}我建议研究文档,以获取有关如何执行查询的更多详细信息。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript