当前位置: 首页 > 知识库问答 >
问题:

对Cosmos SQL的查询

倪德业
2023-03-14
{
    "id": "12343920",
    "status": "1",
    "code": "111116"
}

文件2:

{
    "id": "12343921",
    "status": "8",
    "code": "111117"
}

文件3:[不同于其他文件]

{
    "id": "active",
    "Part": [
        {
            "Name": "ABC",
            "Status": [
                "1",
                "2",
                "3"
            ]
        },
        {
            "Name": "DEF",
            "Status": [
                "6",
                "2",
                "8"
            ]
        }
    ],
}

我有一个存储过程,其中API带有3个参数,

  • ID
  • 代码
  • 名称

我需要从文档3中找到相应名称[from 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')

结果我期待的是如下所示,它与API中的参数匹配。

{
    "id": "12343920",
    "status": "1",
    "code": "111116"
}

共有1个答案

姜杜吟
2023-03-14

根据这种情况,cosmos db到目前为止还不支持sub查询,所以它说error靠近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)
 类似资料:
  • 我有一个关于java中的方法的问题,我已经检查了在线资源,但我不能得到我想要的答案。我想知道为什么下面的声明中的“out”和“println”必须是小写字母?

  • 本文向大家介绍一对一、一对多的关联查询 ?相关面试题,主要包含被问及一对一、一对多的关联查询 ?时的应答技巧和注意事项,需要的朋友参考一下

  • 我在这里做错了什么?

  • 问题内容: 我的JSON数据如下所示: 给定文本“ foo”,我想返回所有具有此子字符串的元组。但是我不知道如何编写相同的查询。 我遵循了这个相关的答案,但不知道该怎么做。 这是我现在正在工作的内容: 我不想传递整个文本,而是传递并获得与该文本匹配的结果。 问题答案: 您的解决方案可以进一步简化: 或更简单一点,因为在此示例中,您实际上根本不需要行类型(): dbfiddle 在这里 但这 不是

  • 问题内容: 我想完全匹配 字段中的字符串,并回去一天拉所有这些记录。我拥有的json也似乎与普通单词匹配。我不确定我要去哪里。我是否需要向此查询添加JSON?我当前拥有的JSON如下所示: 问题答案: 如此处所述:查找精确值,因为在对字段进行索引时已对其进行了分析- 您无法完全匹配其标记(“:”)。每当令牌应可搜索时,映射应为“ not_analyzed”,并且数据需要重新索引。 如果您希望仅轻松

  • 在使用Mongoose查询数组时,我很难得到我期望看到的内容。一个用户可以有许多与他/她的帐户相关联的房间。room对象存储在集合中附加到用户的数组中。只有一个集合叫做Users。 请考虑以下user和Room的两个架构: 我还应该指出,数据库是填充的,因为我可以看到RoboMongo中的数组(在创建用户帐户时创建了1个元素)。 正在填充从控制台输出到show database的示例数据(包括us