2017-08-23 4 views
1

私はGoogle Datastoreを使用しており、インデックス付きプロパティのサイズ制限は1500バイトです。 documentationには、索引付けされていないプロパティの制限は1 MB〜89バイトであることが記載されています。Google DatastoreのインデックスからArrayJes経由でArrayフィールドを除外するにはどうすればよいですか?

dataset = { 
     property1: String, 
     property2: String, 
     property3: [ 
      { 
       subProperty1: String, 
       subProperty2: ArrayList<String>, // Larger than 1500 bytes 
       excludeFromIndexes: true 
      } 
     ] 

} 

います:「エラー:プロパティの値が 『私は次のような構造を持っているsubProperty2は』長い1500のバイトを超えています。」

それはうまくいかず、なぜ私は理解できませんでした。助言がありますか?

答えて

1

インデックスから配列型プロパティを除外するには、配列内の各要素のexcludeFromIndexestrueに設定する必要があります。メインArrayプロパティはで、excludeFromIndexesに設定してください。あなたはGCDコンソールからの配列プロパティを編集すると、配列プロパティのためのJSONは以下のようになります:

{ 
    "values": [ 
    { 
     "stringValue": "a", 
     "excludeFromIndexes": true 
    }, 
    { 
     "stringValue": "b", 
     "excludeFromIndexes": true 
    }, 
    { 
     "stringValue": "c", 
     "excludeFromIndexes": true 
    } 
    ] 
} 

はまた、1500バイトの長さ制限はなく、配列の個々の要素に適用されることに注意してください配列全体のサイズに対して。したがって、実際には配列内に長い文字列を持つことができます。そうしたければ、索引付けすることができます。

注意すべき点は、配列のすべての要素をインデックスから除外する必要がないことです。どの要素を索引付けできるかどうかを選択して選択できます。

Node.jsについて詳しくはありませんが、API documentationに例があるようです(#saveセクションでページをスクロールするなど)。 { キー:キー、 データ:データ、 excludeFromIndexes:[ 'property3 [] subProperty2 []' ] しかし、これもうまくいきませんでしたが

+0

APIドキュメントを使用して示唆しています。 } –

関連する問題