我正在尝试使用超过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])
}