2017-08-06 18 views
1

私はAzure関数でJavaScript言語を使用しています。 Cosmos DBを入力として使用する場合、変数として整数で照会することはできません。たとえば、次のようなものがあります。SQL AzureのDocumentDB関数は整数では機能しません。

Azure Cosmos DBを入力(企業)として機能設定します。これは、パーティションキーが{partitionKey}、SQLクエリがSELECT * FROM c where c.random = {randomId}と設定されています。関数のコードで

、私は私のテストデータとして以下のものを送ってきました。これにより

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

を、私は結果を得ることはありません。私は"1"の値でrandomで私のコレクションに何かを追加した場合、私は間違いなくrandom 1.

の値を持つと私は1つのオブジェクトを持っていることを確認した、次のように動作します:

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

私はこれをDocumentDB APIとMongoDB APIの両方で試しましたが、これはバインディングがAzure関数に組み込まれているので重要ではありません。私がさまざまなデータセットで見たトレンドは、クエリーやDocument IDフィールドの何かに整数パラメータをバインドするだけではクエリが機能しないということです。

これを修正する方法はありますか?

編集:

これはC#で利用可能なドキュメントで動作することを確認しました。

答えて

2

a similar questionへのAmorの答えを参照してください。まず、この答えの手順に従って、文字列値を整数に変換するUDFを作成します。次に、次のようにSQLクエリを変更します。

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

それでした。ありがとう! –

関連する問題