1

query.v1エンドポイントでページングするときに結果の合計数を取得するにはどうすればよいですか?

残り-1.v1/データ

次のようなリクエスト:

/rest-1.v1/Data/Member?page=2,0

以下を返します。

<Assets total="4" pageSize="2" pageStart="0">...

属性に注意してくださいtotal="4"

クエリ.v1

一方、次のようなクエリ:

{
  "from": "Story",
  "page":
  {
    "start":0,
    "size":2
  }
}

以下を返します。

[
    [
        {
            "_oid": "Story:1007"
        },
        {
            "_oid": "Story:1015"
        }
    ]
]

合計数がないことに注意してください。

カウントを含めるためにselectステートメントに提供できる特別なパラメーターはありますか?(エンドポイントに似て@Countrest-1.v1/Dataますか?)

4

3 に答える 3

1

残念ながら、rest-1.v1 の場合と同様に、query.v1 エンドポイントを使用する場合、この情報はデフォルトでは存在しません。しかし、ここでは、2 つのクエリ アプローチで使用できる回避策を示します。

[
    {
        "from": "Scope",
        "select":["Workitems.@Count"],
        "filter":["ID='Scope:0'","Workitems.AssetType='Story'"]
    },
    {
        "from": "Story",
        "select": ["Name"],
        "filter":["Scope='Scope:0'"],
        "page":
        {
            "start":0,
            "size":2
        }
    }
]
于 2014-05-27T14:21:31.840 に答える
1

さらに調査した結果、2 つのクエリを使用して結果をカウントするソリューションを次に示します。

[
    {
        "from": "Scope",
        "select":["Workitems:Story[AssetState!='Dead'].@Count"],
        "filter":["ID='Scope:0'"]
    },
    {
        "from": "Story",
        "select": ["Name"],
        "filter":["Scope='Scope:0'","AssetState!='Dead'"],
        "page":
            {
                "start":0,
                "size":200
            }
    }
]

4 行目のいくつかの説明:

"select":["Workitems:Story[AssetState!='Dead'].@Count"]

「Workitems」の後、コレクションを「Story」にダウンキャストし、「AssetState」が「Dead」でない場所をフィルタリングしてアクティブなストーリーを取得し、最後に Workitems をカウントします。

ここには、いくつかのリファレンスと追加のドキュメントがあります。

VersionOne文法

于 2014-07-10T14:44:52.923 に答える
0

Workitems@LaureanoRemedi は質問に答えましたが、それ以上のフィルタリングに対応するように拡張したいと思いましたScope

たとえば、ストーリーに属するタスクの数を数えたいとします。down-cast-and-filter 構文を使用しTaskて、それに属する をScopeそのParent属性でフィルタリングできます。

"Workitems:Task[Parent='Story:1007'].@Count"

これで、マルチクエリ リクエストを作成できます。

[{
  "from": "Scope",
  "where": {"ID":"Scope:1000"},
  "select": [ "Workitems:Task[Parent='Story:1007'].@Count" ]
},
{
   "from": "Task",
   "where": { "Parent": "Story:1007" }
}]

結果だけでなくカウントも返します。

[
    [
        {
            "_oid": "Scope:1000",
            "Workitems:Task[Parent='Story:1007'].@Count": "2"
        }
    ],
    [
        {
            "_oid": "Task:1008"
        },
        {
            "_oid": "Task:1009"
        }
    ]
]
于 2014-07-17T02:09:59.183 に答える