2

CosmosDB のデータ モデルは次のとおりです。

{
    "id": "100",
    "BookID": "100",
    "PublishDate": "2014-02-23",
    "Authors": [
        {
            "FirstName": "Jerry",
            "Title": "Writer"
        },
        {
            "FirstName": "Sally",
            "Title": "CEO"
        },
        {
            "FirstName": "Tom",
            "Title": "COO"
        }
    ] }

Bookオブジェクト レベルでページングを実行できることはわかっています。たとえば、クエリを実行してSELECT * FROM c、ページ番号とページ サイズを設定できます。

ただし、サブオブジェクト レベルでページングを行うことはできますか? この場合、Authorsレベルで?

Book関連クエリと関連クエリの両方でまったく同じコードを使用したため、この質問をしていAuthorsます。Bookクエリは、ページ番号とページ サイズに関して正しい結果を返します。ただし、Authorsクエリは常に配列内のすべての項目を返します。クエリAuthorsは次のとおりです。

SELECT c.Authors FROM c WHERE c.BookID = "100"

ページ サイズ = 1、ページ番号 = 1 の場合、結果は正しくありません。最終的に 3 人の著者すべてが返されます。

だから私はおそらくCosmosdbでBookオブジェクトとして使用され、ページングはBook​​レベルでのみ機能すると考えていましたか? Authorsレベルのページングが機能しないのはそのためですか?

4

2 に答える 2

2

ページングについては少し誤解があると思います。ページングは​​、ドキュメントの一部ではなく、ドキュメントを返すことに関連しています。

配列要素を要求すると、それが得られます。サブセットではなく、完全な配列を取得します。ここで、たとえば 100 個のドキュメントがあり、それぞれが同じBookID=100.

于 2018-08-13T20:06:53.660 に答える