Javascript 数组在二维数组中不包含提取结果

Javascript 数组在二维数组中不包含提取结果,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,我正在将数据保存在如下图所示的文档中。我想从数组notifyArray,ctg中获取记录,其中数组包含Burger 这是我正在尝试的代码: firebase.firestore().collection(`notifications`) .where("notifyArray", "array-contains", 'Burger') .onSnapshot(querySnapshot=> { querySnapshot.forEach(doc=>

我正在将数据保存在如下图所示的文档中。我想从数组
notifyArray
ctg
中获取记录,其中
数组包含
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不支持查询数组中的映射属性。您只能搜索地图的全部内容,这意味着您必须知道其所有字段的所有值

您可以做的是创建一个新数组,该数组只包含映射中
食物
属性的字符串值,然后查询该数组

firebase.firestore()
    .collection(`notifications`)
    .where("foodArray", "array-contains", 'Burger')

上面,查询期望有一个名为
foodArray

的字符串数组。让我试着按照您解释的方式回答。我有一个映射数组,我想通过属性过滤映射,你解释的另一种方式,我知道正如我所说的,你不能根据数组中映射字段的内容进行过滤。您需要一个新字段来支持此查询。谢谢您的指导,您也可以在这里指导我吗-