当前位置: 首页 > 面试题库 >

如何将数组作为Cosmos DB查询的SQL查询参数传递

年风华
2023-03-14
问题内容

我想将数组作为参数传递给SqlQuerySpec,以便在构建对天蓝色的db数据库的查询时可以在IN表达式中使用它。我想做的是像我们对常规参数(字符串,整数等)所做的事情:

private SqlQuerySpec BuildQuery(IEnumerable<string> exclTypes)
{
    var queryText = "SELECT * FROM root r WHERE r.Type NOT IN (@types)";
    var parameters = new SqlParameterCollection{new SqlParameter("@types", exclTypes.ToArray())};
    return new SqlQuerySpec()
    {QueryText = queryText, Parameters = parameters};
}

但是,这种方式是行不通的。我还有其他方法可以将数组作为参数传递吗?谢谢。


问题答案:

您的查询应如下所示:

SELECT * FROM root r WHERE ARRAY_CONTAINS(@types, r.Type) <> true

那么您可以将其@types作为数组传递,并检查该数组是否包含r.Type文档中属性中具有的值。

参考:

https://docs.microsoft.com/zh-cn/azure/cosmos-db/sql-api-sql-query-
reference#bk_array_contains

https://github.com/Azure/azure-documentdb-
node/issues/156



 类似资料:
  • 我写了一个代码来管理一个咖啡馆,所以在框架中我添加了一个JTable,每次我从JComboBox中选择一个项目,它都应该显示在JTable中。为此,我添加了一个按钮,对于它的操作,我确保每次单击它时,它都将从JComboBox中单击的项存储在数据库中,然后将从数据库中获取的项存储在JTable中。但问题是JTable有两列,而JComboBox中的选择只有一列。因此,另一列必须从其他数据库调用,这

  • 问题内容: 我有一个整数或字符串列表,需要将其作为Delphi DataSet的参数传递。怎么做? 这是一个例子。MyQuery类似于: 我将参数设置为列表或数组或其他内容: 它将导致此查询发送到sql服务器: 如果该解决方案也可以与字符串一起使用,则执行以下查询会更好: 变得: 我相信这是一个简单的问题,但是“ IN”并不是搜索网络的好关键字。 请回答如何在IDE中配置参数,查询以及如何传递参数

  • 问题内容: 我有一个由一列值组成的数据框,我想将其作为参数传递来执行以下sql查询: 因此,我尝试了许多其他事情: 传递数据帧值的正确方法是什么? 注意:我使用的是Microsoft SQL Server,因此查询格式需要与我一样。 问题答案: 这能满足您的需求吗? 然后,您应该能够查询而无需更多参数。

  • 问题内容: 我问这个问题有点傻,因为我似乎是世界上唯一一个不了解这个问题的人,但是无论如何,这都是可行的。我将以Python为例。当我使用原始SQL查询(通常使用ORM)时,我会使用参数化,例如使用SQLite的以下示例: 方法A: 我知道这可行,我知道这是通常推荐的方式。SQL注入易受攻击的方式可以执行以下操作: 方法B: 到目前为止,我可以告诉我了解SQL注入,如本Wikipedia文章中所述

  • 在变换的中间,我从表ABC中创建COL1、COL2和COL3、COL4、COL5。 我通常按如下方式转换这些类型的脚本,然后在查找组件中将列与col1到col5匹配: 我想检查:1-我的方法正确吗?我的意思是,如果记录的数量很高,那么我们可能会面临这个问题,然而,这个查询只返回单行记录。 2-如果我想使用第一种方法,我如何传递参数?我试着去读以前的帖子(以前的解决方案),但问题是我处于一个转换的中

  • 例子: 从卷号在(1,2,3)中的学生中选择*; 在学生存储库(Spring Boot)中: @查询(value=“从卷号所在的学生中选择*”,native=true) 列出selectStudents(我在这里给出什么?) 或者有没有其他方法来实现这一点?