google-cloud-firestore - Firestore Query where 字段可能嵌套在多个级别
问题描述
想象一个像下面这样的文档结构,其中一个字段 likeitemId
可能存在于多个嵌套级别:
items: [
{
title: 'Heading 1',
items: [
{itemId: 123, itemTitle: 'Foo' },
{itemId: 456, itemTitle: 'Bar' },
],
},
{itemId: 789, itemTitle: 'Baz' },
]
是否有一个有效的查询,我可以说,Find any document where `itemId == 456'?
解决方案
使用您在此处显示的文档结构,没有任何查询可以执行您想要的操作。问题是itemId
存在于数组字段内部,无法查询数组字段的特定键或值数据。此结构没有解决方法。
您需要做的是在此文档中引入一个新字段,该itemId
字段在一个可以查询的单个字段中包含所有包含的值。它可以是一个数组字段,其中数组的项目是 itemId 字符串。如果这样做,您将使用数组包含类型查询来查找itemId
您要查找的内容。
推荐阅读
- oauth - HostGator 上的 OAuth 问题
- python - Python:如何让 eval() 查看局部变量?
- java - 如何使用三个列表将数据添加到自定义 ArrayList?
- python - Pandas 按逻辑选择多行和多列
- python - 开发诗歌包所需的最小 setup.py 是什么?
- continuous-integration - 我如何知道 Travis CI 中特定构建的 VM RAM 大小?
- arrays - VBA:如何访问数组内的二维数组?
- javascript - Node js - 每个代理插件的 puppeteer 页面 - 代理连接错误
- outlook - 在 Office.js 中,我们如何使用 Office.context.mailbox.item.saveAsync 响应(克服 ErrorItemNotFound)?
- reactjs - 如何将请求从 docker 容器内的 nginx 内的 react 应用程序发送到同一 AWS EC2 上的 docker 容器内的 golang webservice