CosmosDBクエリエクスプローラで次のクエリを実行しました。Azure CosmosDBクエリエクスプローラの結果とAzure関数の結果の差
SELECT c.id, c.created_at FROM c
WHERE c.created_at_epoch <= 1499871600 - 86400*31
AND (CEILING(1499871600/86400) - CEILING(c.created_at_epoch/86400)) % 31 = 0
結果は次のとおりです。
[
{
"id": "70251cbf-44b3-4cd9-991f-81127ad78bca",
"created_at": "2017-05-11 18:46:16"
},
{
"id": "0fa31de2-4832-49ea-a0c6-b517d64ede85",
"created_at": "2017-05-11 18:48:22"
},
{
"id": "b9959d15-92e7-41c3-8eff-718c4ab2be6e",
"created_at": "2017-05-11 19:01:43"
}
]
これは問題がないようです。
次に、静的に定義されたエポック値を、Azure関数DocumentDB入力バインディングのsqlQueryとして使用するためのプレースホルダに置き換えました。その後、私はthis issue
SELECT c.id, c.created_at FROM c
WHERE c.created_at_epoch <= {epoch} - 86400*31
AND (CEILING({epoch}/86400) - CEILING(c.created_at_epoch/86400)) %modulationsymbol% 31 = 0
を回避するための%modulationsymbol%
に変調記号を置き換えそして私は、アプリケーションの設定としてmodulationsymbol = %
を定義しました。
次のように続いて、私は、関数を指定しました。
// index.js
module.exports = function (context, myQueueItem) {
context.log(context.bindings.members, myQueueItem);
context.done();
};
// function.json
{
"bindings": [
{
"name": "myQueueItem",
"type": "queueTrigger",
"direction": "in",
"queueName": "myqueue",
"connection": "MYSTORAGE"
},
{
"type": "documentDB",
"name": "members",
"databaseName": "myproject-db",
"collectionName": "member",
"sqlQuery": "SELECT c.id, c.created_at FROM c WHERE {epoch} - c.created_at_epoch >= 86400*31 AND (CEILING({epoch}/86400) - CEILING(c.created_at_epoch/86400)) %modulationsymbol% 31 = 0",
"connection": "MYCOSMOSDB",
"direction": "in"
}
],
"disabled": true
}
その後、私はこの機能をトリガし、この結果は以下の通りです。
2017-07-05T03:57:29.640 Function started (Id=d980521e-d23a-4bda-a730-57a236bcd011)
2017-07-05T03:57:30.594 [] { epoch: 1499871600 }
2017-07-05T03:57:30.594 Function completed (Success, Id=d980521e-d23a-4bda-a730-57a236bcd011, Duration=951ms)
context.bindings.members
は空のリストです。 CosmosDB Query Explorerの結果とは異なります。
この違いが表示されるのはなぜですか?
私は今、それを得ました、ありがとう。しかし、Script Explorerは私のリソースには存在しません。 ![CosmosDBブレイドのスナップショット](https://wo1xyw.bn1303.livefilestore.com/y4mqQudG0QUSljYoqClYpqVI2q9xmWS9Qow1BXnrDc8affQPlO831trFXTPLAc3HSAw6hKVm5gdSQCT9TyEHCrNCYTQkudgS2c-h_sQcaqWrn0xcv7heMAtt9BsnxRbxqmxZXY0dVqi2fSJQiiVkfw-KouSo62JE2PvP28os2yF8UvPmMib5I3NNQr9_EosgbYq_ZrG4k1IgGIV36CoKZsqKg?width = 214&height = 272&cropmode = none) – ytnobody
UDFをサポートしていないAzure MongoDBを使用していますか?私が挑戦したのは、Azure DocumentDBです。 – Amor
また、私の返信を編集してC#バージョンの回避策を提供します。 – Amor