使用 Cosmos DB 的文档字段的参数化输入
Parameterized Input with Document Fields with Cosmos DB
我想对文档字段以及 Cosmos DB 指定字段的值使用参数化查询。 https://docs.microsoft.com/en-us/azure/cosmos-db/how-to-sql-query#parameterized-queries
例如:
SELECT *
FROM Families f
WHERE @field = @value
我希望能够为 @field
指定 f.lastName
,为 @value
指定 Smith
。
这不可能吗?尝试通过 .NET SDK 执行此操作,无论我做什么,它似乎都不起作用。
基于 link 中的示例,不支持 @field = @value
。
SELECT *
FROM Families f
WHERE f.lastName = @lastName AND f.address.state = @addressState
如果你的过滤列比较灵活,你可以自己将querysql拼接成String。
'SELECT *
FROM Families f
WHERE ' + filterColumn + ' = @value'
我找到了一种方法。
您可以使用 Quoted Property Accessor
这是您的操作方式:
SELECT *
FROM Families f
WHERE f[@field] = @value
我想对文档字段以及 Cosmos DB 指定字段的值使用参数化查询。 https://docs.microsoft.com/en-us/azure/cosmos-db/how-to-sql-query#parameterized-queries
例如:
SELECT *
FROM Families f
WHERE @field = @value
我希望能够为 @field
指定 f.lastName
,为 @value
指定 Smith
。
这不可能吗?尝试通过 .NET SDK 执行此操作,无论我做什么,它似乎都不起作用。
基于 link 中的示例,不支持 @field = @value
。
SELECT *
FROM Families f
WHERE f.lastName = @lastName AND f.address.state = @addressState
如果你的过滤列比较灵活,你可以自己将querysql拼接成String。
'SELECT *
FROM Families f
WHERE ' + filterColumn + ' = @value'
我找到了一种方法。
您可以使用 Quoted Property Accessor
这是您的操作方式:
SELECT *
FROM Families f
WHERE f[@field] = @value