1

REST API を使用して測定値を取得する場合、revertパラメーターを渡して測定値の順序を逆にすることができます。

https://tenant.cumulocity.com/measurement/measurements?revert=true

ただし、余分なデバイスをパラメーターとして渡すとすぐに、

https://tenant.cumulocity.com/measurement/measurements?revert=true&source=876123

revert キーワードが機能しなくなったようです。表示される最初の値は、実際の最新の値より 1 日前の時点です。実際、revert=falseパラメーターを指定または省略した場合、表示される最初の値のタイムスタンプは、実際には で最初に表示される値のタイムスタンプよりも時系列的に後になりますrevert=true

  • ソースが指定されていない最初のアイテムとrevert=true:"2015-12-20T18:15:00.000+01:00"
  • ソースが指定された最初のアイテムとrevert=true:"2015-12-19T01:25:00.000+01:00"
  • ソースが指定された最初のアイテムとrevert=false:"2015-12-19T12:50:00.000+01:00"

これについての説明はありますか、それともソースを指定するときに revert キーワードが無効ですか?

4

1 に答える 1

2

完全に理解するには:

  • 誰かがデータベースにクエリを実行すると、適切なインデックスが取得され、このインデックスに従って結果が返されます (パフォーマンス上の理由)。インデックスはクエリ パラメータに従って選択されます。

  • パラメータ「元に戻す」はこのインデックスで機能し、正確な意味では、結果をインデックス順序に戻すことです

あなたの場合、なぜ間違った結果が得られるのですか:

ソースが指定されておらず、revert=true の最初のアイテム ...

「自然な」インデックス (データベースにドキュメントを追加する順序) を取得し、要素を追加した順序に戻して返します。順序または追加と時間の順序の一致は偶然です

ソースが指定された最初のアイテム...

この場合、インデックス「bySource」を取得します。これは「ソース」プロパティの B ツリーであり、「ソース」によってのみソートされます。この場合、データは「時間」順ではありませんでした

特定の「ソース」で結果を取得し、「時間」で並べ替えたい場合は、アプリケーションを bySourceAndTime インデックスに強制する必要があります :) これを行う方法は、単に次の URL を使用してください:

https://tenant.cumulocity.com/measurement/measurements?dateTo=2015-12-22&dateFrom=1970-01-01&source=10307&revert=false

この場合、アプリケーションは SourceAndByTime でインデックスを取得し、インデックスにはソースと時間で並べ替えられたデータがあり、revert = true を追加すると、結果は時間に戻る順序になります。

よろしく、
アルカディウス

于 2015-12-21T16:00:27.283 に答える