Cha*_*wis 4 javascript firebase google-cloud-firestore
在Cloud Firestore中,我需要使用array-contains查询在包含地图的数组中找到匹配项。
我可以很容易地匹配直接字符串,数字等,但是当数组的值是映射时,它总是失败。文档没有暗示这是否可能。
这是一些数据的例子
{
data:
[
item_1: {...},
item_2: {...}
]
}
Run Code Online (Sandbox Code Playgroud)
这是查询的示例
db.collection("list")
.where("data", "array-contains", "item_1")
.get()
.then(collectionRef => {
//do something with collection
})
Run Code Online (Sandbox Code Playgroud)
我期望数组包含的内容与地图的最高值(item_x)匹配,此刻与此不匹配。我认为这是因为它想将地图的整个内容匹配为数组项的“值”。
任何帮助,将不胜感激。如果这不可能,我可能不得不重新考虑我的数据结构。对于上下文,我在云函数中使用此函数在原始文档更新时更新数组中的项目(它们是对文档的引用)。
包含数组的查询仅匹配数组中的整个项目。如果该项目是一个对象,则查询必须提供整个确切的对象,以匹配数组中的相等性。
不支持您现在正在执行的操作。您将不得不在文档中提供其他字段以进行搜索,可能会重复该文档中的数据,这对于NoSQL类型数据库是很常见的。
| 归档时间: |
|
| 查看次数: |
768 次 |
| 最近记录: |