【问题标题】:SQL Query DocumentDB in Azure Functions by an integer not working通过整数在 Azure Functions 中 SQL 查询 DocumentDB 不起作用
【发布时间】:2017-08-06 06:11:09
【问题描述】:

我在 Azure Functions 中使用 JavaScript 语言。使用 Cosmos DB 作为输入时,我无法将整数作为变量进行查询。例如,我有以下内容:

使用 Azure Cosmos DB 作为我的输入的函数设置(公司)。这是使用分区键设置为{partitionKey},我的 SQL 查询设置为SELECT * FROM c where c.random = {randomId}

在函数的代码中,我发送了以下内容作为我的测试数据:

{
    "randomId": 1,
    "partitionKey": "prospect"
}

有了这个,我没有得到任何结果。我已经确定我有一个 random 值为 1 的对象。

如果我要使用 random 向我的收藏中添加一些值为 "1" 的内容,则以下方法会起作用:

{
    "randomId": "1",
    "partitionKey": "prospect"
}

我在 DocumentDB API 和 MongoDB API 上都试过了,这无关紧要,因为绑定是内置在 Azure Functions 中的。我在不同数据集上看到的趋势是,当您将整数参数绑定到查询或文档 ID 字段中的某些内容时,查询将不起作用。

任何想法如何解决这个问题?

编辑:

我已经通过可用的文档确认这在 C# 中有效。

【问题讨论】:

    标签: javascript node.js azure azure-cosmosdb azure-functions


    【解决方案1】:

    请参阅 Amor 对 a similar question 的回复。首先,您可以按照此答案中的步骤创建 UDF 以将字符串值转换为整数。然后将 SQL Query 更改如下:

    SELECT * FROM c where c.random = udf.ConvertToNumber({randomId})
    

    【讨论】:

    • 如果 randomId 为 null {null},则会抛出错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-04
    • 1970-01-01
    相关资源
    最近更新 更多