首页 > 解决方案 > 用于在数据库中搜索的 CosmosDB 查询

问题描述

我的 CosmosDB 中有以下结构的条目:

{
    "id": "~results:123",
    "catalog:entity": [
        {
            "id": "~song.base:1da",
            "schema:name": "Autobiography",
            "schema:code": [
                "7dhs"
            ]
        },
        {
            "id": "~song.base:2da",
            "schema:name": "Autobiography",
            "schema:code": [
                "4lko"
            ]
        }
    ]
}

但是,我在搜索那些包含schema:code:存在于具有父数组的数组中的特定内容时遇到了问题catalog:entity

我尝试了一些事情,例如没有运气:

SELECT * FROM c JOIN schema:code IN c["catalog:entity"] WHERE schema:code IN "7dhs"

任何想法,将不胜感激。

谢谢

标签: azure-cosmosdb

解决方案


使用 sql:

SELECT c FROM c 
JOIN s IN c["catalog:entity"]
where array_contains(s["schema:code"],"7dhs",false)

输出:

在此处输入图像描述


推荐阅读