Как установить тип данных для значения при создании сущности с помощью библиотеки google-cloud / datastore для Node JS? - PullRequest
0 голосов
/ 16 июня 2019

Я пытаюсь обновить значение свойства объекта более чем 1500 байтами данных, и, несмотря на то, что свойство неиндексировано и отображается в консоли Google как неиндексированное, оно все равно выдает мне следующую ошибку:

Error: The value of property "Content" is longer than 1500 bytes.

Я попытался установить тип свойства Content в «Text» вручную через консоль, и это помогает (это устанавливается на String автоматически, когда я запускаю функцию ниже).Однако я не знаю, как установить этот тип с помощью библиотеки хранилища данных.

Вот упрощенная версия кода, который я использую:

function addEntities (data) {
  const entities = data.map(datum => Object.assign({}, {
    key: datastore.key(['SomeKind']),
    excludeFromIndexes: ['Content', 'Feedback', ...Object.keys(datum)],
    data: Object.assign(datum, {
      'Status': 'New',
      'Content': "",
      'Feedback': ""
    })
  }))
  return datastore.insert(entities)
}

async function updateContent (content, entityId) {
  const query = datastore
    .createQuery('SomeKind')
    .filter('__key__', '=', datastore.key(['SomeKind', parseInt(entityId)]))
  const Entity = await datastore.runQuery(query)
  Entity[0][0]['Content'] = JSON.stringify(content)
  return datastore.upsert(Entity[0][0])
}
...