Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure 查询cosmosql_Azure_Azure Cosmosdb_Azure Cosmosdb Sqlapi - Fatal编程技术网

Azure 查询cosmosql

Azure 查询cosmosql,azure,azure-cosmosdb,azure-cosmosdb-sqlapi,Azure,Azure Cosmosdb,Azure Cosmosdb Sqlapi,我已经阅读了Azure cosmos文档,它目前表示不允许在同一数据库中加入2个不同的集合。 我需要帮助实现以下场景。 下面是Cosmos数据库中的文档。我也在使用SQLAPI 以下所有文档都在同一个集合中。”id'是分区键 文件1: { "id": "12343920", "status": "1", "code": "111116" } { "id": "12343921", "status": "8", "code": "111117" }

我已经阅读了Azure cosmos文档,它目前表示不允许在同一数据库中加入2个不同的集合。 我需要帮助实现以下场景。 下面是Cosmos数据库中的文档。我也在使用SQLAPI

以下所有文档都在同一个集合中。”id'是分区键

文件1:

{
    "id": "12343920",
    "status": "1",
    "code": "111116"
}
{
    "id": "12343921",
    "status": "8",
    "code": "111117"
}
文件2:

{
    "id": "12343920",
    "status": "1",
    "code": "111116"
}
{
    "id": "12343921",
    "status": "8",
    "code": "111117"
}
文件3:[与其他文件不同]

{
    "id": "active",
    "Part": [
        {
            "Name": "ABC",
            "Status": [
                "1",
                "2",
                "3"
            ]
        },
        {
            "Name": "DEF",
            "Status": [
                "6",
                "2",
                "8"
            ]
        }
    ],
}
我有一个存储过程,其中API带有3个参数

  • 身份证
  • 代码
  • 名字
我需要从文档3中找到对应名称[来自API]的状态,然后需要在其他文档中应用IN子句以找到匹配的响应

我尝试了以下几个查询。

我试图从文档3获取状态字符串数组:

SELECT Value t.Status
from f
JOIN t in f.Part
where t.Name=@Name
此查询在SQL编辑器中工作[如果我用ABC替换@Name],但在存储过程中执行时不显示文档

其他代码

SELECT n.id,n.code,n.Status
FROM order n
where n.Code=@Code
and n.id=@id and n.Status IN (
 SELECT ARRAY(
  SELECT Part.Status
  FROM Part
  in order.Part
  WHERE Part.Name=@Name)
 FROM orders WHERE orders.id='active')
在SELECT语句附近显示error

我期望的结果如下,它与API中的参数匹配

{
    "id": "12343920",
    "status": "1",
    "code": "111116"
}
根据这一点,COSMOSDB到目前为止不支持子查询,所以它说SELECT语句附近有错误

为了满足您的需求,我建议您使用双sql查询

首先使用sql选择状态数组筛选器条件

SELECT value t.Status from f JOIN t in f.Part where t.Name= @Name
SELECT f.id,f.code,f.status from f where IS_DEFINED (f.Part) = false 
and ARRAY_CONTAINS(@STATUS,f.status,false)
第二个sql将状态与筛选条件匹配

SELECT value t.Status from f JOIN t in f.Part where t.Name= @Name
SELECT f.id,f.code,f.status from f where IS_DEFINED (f.Part) = false 
and ARRAY_CONTAINS(@STATUS,f.status,false)
根据这一点,COSMOSDB到目前为止不支持子查询,所以它说SELECT语句附近有错误

为了满足您的需求,我建议您使用双sql查询

首先使用sql选择状态数组筛选器条件

SELECT value t.Status from f JOIN t in f.Part where t.Name= @Name
SELECT f.id,f.code,f.status from f where IS_DEFINED (f.Part) = false 
and ARRAY_CONTAINS(@STATUS,f.status,false)
第二个sql将状态与筛选条件匹配

SELECT value t.Status from f JOIN t in f.Part where t.Name= @Name
SELECT f.id,f.code,f.status from f where IS_DEFINED (f.Part) = false 
and ARRAY_CONTAINS(@STATUS,f.status,false)

嗨,杰,谢谢。我还在解决这个问题。我正在使用COSMOSSQL编辑器尝试这一点。不确定这是否是测试的正确选项。好的,我试过了,但无法通过单个查询进行搜索。谢谢Jay,我需要将其合并到Cosmos存储过程中。是的,请将下面的查询SQL合并到存储过程中,它可以实现。嗨,如果我的答案对你有帮助,你可以把它标出来供别人参考。非常感谢。嗨,杰,谢谢。我还在研究这个问题。我正在使用COSMOSSQL编辑器尝试这一点。不确定这是否是测试的正确选项。好的,我试过了,但无法通过单个查询进行搜索。谢谢Jay,我需要将其合并到Cosmos存储过程中。是的,请将下面的查询SQL合并到存储过程中,它可以实现。嗨,如果我的答案对你有帮助,你可以把它标记出来供别人参考。非常感谢。嗨,杰,谢谢你分享你的意见。我无法进一步检查这一点,因为需求发生了变化,我没有工作平台。一旦我有了平台,我一定会更新我的评论。@Sathya不要紧,等待你的回复,有任何问题,请告诉我。嗨,Jay,谢谢分享你的意见。我无法进一步检查这一点,因为需求发生了变化,我没有工作平台。一旦我有了平台,我一定会更新我的评论。@Sathya没关系,等待你的回复,有任何问题,请告诉我。