2017-08-23 3 views
1

J'utilise Google Datastore et je suis bloqué avec la limite de taille de 1500 octets pour les propriétés indexées. Le documentation mentionne que la limite pour les propriétés non indexées est de 1 Mo - 89 octets. J'ai la structure suivante:Comment exclure un champ Array d'index dans Google Datastore via nodeJS?

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

} 

qui donne: « Erreur: La valeur de la propriété « subProperty2 » est plus de 1500 octets. »

Cela n'a pas fonctionné et je ne pouvais pas comprendre pourquoi. Aucune suggestion?

Répondre

1

Pour exclure une propriété de type Array des index, excludeFromIndexes doit être défini sur excludeFromIndexes sur true. La propriété Array principale doit NOT définir excludeFromIndexes. Lorsque vous modifiez une propriété de tableau de GCD Console, le JSON pour la propriété de tableau devrait ressembler à celui ci-dessous:

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

Notez également que la restriction de longueur de 1500 octets est appliqué à chaque élément du tableau plutôt que pour toute la taille du tableau. Vous pouvez donc vraiment avoir de longues chaînes dans le tableau et être capable d'indexer, si vous choisissez de le faire. Une autre chose à noter est que vous n'avez pas à exclure tous les éléments du tableau de l'indexation. Vous pouvez choisir quels éléments peuvent être indexés/non.

Pas trop familier avec Node.js, mais il semble y avoir un exemple dans le API documentation (faites défiler une page ou deux dans la section #save).

+0

documentation de l'API suggèrent l'utilisation: { clés: clés, données: données, excludeFromIndexes: [ 'property3 [] subProperty2 [].' ] Mais cela aussi ne fonctionnait pas. } –