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

查询嵌入的文档,其中包含place子句-COSMOSSQLAPI

邢浩邈
2023-03-14

我正在尝试查询嵌入的文档,以获得如下结果:

文件:

{
    "id": "1",
    "description": "coco cola",
    "locations": [
        { "locationId": "14", "taxType" : "20", "state": "Florida" },
        { "locationId": "14", "taxType" : "22", "state": "Florida" },
        { "locationId": "16", "taxType" : "23", "state": "California" }
      ]  
},
{
    "id": "2",
    "description": "Mac & Cheese",
    "locations": [
        { "locationId": "22", "taxType" : "31", "state": "Texas" },
        { "locationId": "16", "taxType" : "23", "state": "California" }
      ]  
}

我正在尝试使用SQL查询查询上述文档:

SELECT * FROM c
where c.id= "1" and ARRAY_CONTAINS(c.locations,{"locationId": "14"},true)

预期输出:(当我们使用位置 Id = 14 时,我们需要忽略位置 Id = 16,因为 Id = 1):

{
    "id": "1",
    "description": "coco cola",
    "locations": [
        { "locationId": "14", "taxType" : "20", "state": "Florida" },
        { "locationId": "14", "taxType" : "22", "state": "Florida" }
      ]  
}

ARRAY_CONTAINS不起作用,我没有得到预期的输出,当我使用上述查询时,它给我空的结果。我如何使用嵌入文档上的where子句进行查询?

共有1个答案

颜君浩
2023-03-14

我认为你的预期产出不能通过SQL来实现。你可以使用UDF并注意它的成本。如果你认为UDF的成本太贵,你可以在你的客户端进行改造。

 类似资料:
  • 问题内容: 当表开始增长时,我担心WHERE子句中IN的性能。有没有人对这种查询有更好的策略?子查询返回的记录数比TradeLine表中的记录数增长得慢得多。TradeLine表本身以每天10个的速度增长。 谢谢你。 编辑:我使用了将子查询从WHERE移到FROM的想法。我对有助于此新查询的所有答案投了赞成票。 问题答案: 子句中的子查询不依赖于外部查询中的任何内容。您可以安全地将其移到子句中;一

  • 我用Mongoose定义了以下模式: 我尝试执行以下查询: 查询不响应,并且从不进入回调函数。这很奇怪,因为这种类型的查询(搜索两个字符串字段)适用于我定义的另一个模式,但不适用于这个模式。另一种模式更简单,不需要任何嵌入文档。 [更新] 我试过你的建议,但不行。我认为只有两个选择: 1.我发布的模式有问题。 多谢!

  • 我有一个Spring Boot应用程序。在其中,我有一个SQL查询,需要创建一个子查询,内部将该子查询的结果与另一个表连接,然后从该内连接的结果中进行选择。但是很明显,JPA不允许您在OF子句中使用子查询(我假设既不使用JPQL也不使用Criteria API)。有没有办法绕过这个? 我考虑过将子查询的结果存储在一个临时实体中(理想情况下不创建可持久化到DB的表),然后从存储在这些实体中的数据中进

  • 问题内容: 我有两个表,我需要创建一个视图。这些表是: 我使用以下查询来执行此操作。不带“创建视图”部分的查询运行良好,但带有“创建视图”的查询则显示错误“视图的SELECT在FROM子句中包含子查询”。可能是什么问题和可能的解决方案: 问题答案: 根据文档: MySQL文档 SELECT语句在FROM子句中不能包含子查询。 解决方法是为每个子查询创建一个视图。 然后从您的视图中访问这些视图

  • 问题内容: 我正在使用SQLAlchemy和SQLite3构建查询,其中我想选择其中String列包含特定子字符串的行。做到这一点的最佳方法是什么? 问题答案: 筛选。还有一个不区分大小写的搜索。 对于更高级的界面,您可以允许使用已知的“ dir”通配符。 笔记: 和是(如果数据库是由另一个应用程序创建的,则SQLSoup很有用) 对于SQLAlchemy Core是。当您需要原始SQL的所有功能

  • 问题内容: 我正在尝试作为请求执行查询,以便从我创建的索引中提取数据。索引中的数据是DB 的表,但是通过进行配置。 这是我的不带IN子句的请求: http:// localhost:9200 / response_summary / search?q = api:“位置” + AND + transactionoperationstatus:“已收费” + AND + operatorid =’D