javascript - 数组包含未在二维数组中获取结果
问题描述
我将数据保存在文档中,如下图所示。我想从数组中获取记录notifyArray
,ctg
其中array-contains
Burger。
这是我正在尝试的代码:
firebase.firestore().collection(`notifications`)
.where("notifyArray", "array-contains", 'Burger')
.onSnapshot(querySnapshot=> {
querySnapshot.forEach(doc=> {
console.log(doc.data());
console.log("Search result");
var data = Object.assign(doc.data(), {docid : doc.id})
this.goalList1.push(data);
});
console.log(this.goalList1);
});
但它没有返回任何结果。理想情况下,它应该返回 2 条记录。
解决方案
该数组notifyArray
是一个映射数组,每个映射包含两个属性。Firestore 不支持查询数组中的地图属性。您只能搜索地图的全部内容,这意味着您必须知道其所有字段的所有值。
您可以做的是创建一个仅food
包含映射中属性的字符串值的新数组,然后查询该数组。
firebase.firestore()
.collection(`notifications`)
.where("foodArray", "array-contains", 'Burger')
上面,查询期望有一个名为 的字符串数组foodArray
。
推荐阅读
- kubectl - AWS CodeBuild kubectl apply -f 无法识别:未经授权
- python-3.x - numpy数组到字符串加载?
- sql - 案例表达式比较 ColumnName 查找存在且 ColumnName 不为空
- swagger - 以编程方式生成 Swagger Bearer 令牌
- python - 跨两个数据帧的乘法
- ios - 未显示来自 JSON 的 SwiftUI Picker 数据
- c++ - 静态函数中的递归调用 - gcc 产生 recursive_init_error 异常
- asp.net-core - blazor 现在对于生产是否足够稳定,或者我应该将 MVC 与 JS 框架一起使用?
- python - 使用 Boost::Python 将数据从 C++ 向量复制到 numpy 数组的最有效方法
- java - 俄语中的Hibernate创建记录显示为问号mysql