在实体键下插入其他属性时,我遇到一个奇怪的问题。
我试图在不修改现有属性的情况下再添加一个属性,但是,下面的代码创建了新属性,并删除了现有数据(显示为空白) 根据GCP文档,我尝试使用插入和upsert不能解决问题
server.post('/submit', (req, res,) => {
const OutTime = new Date();
const key = datastore.key([VData, 5717023518621696])
const entity = {
key:key,
method: 'insert',
data: { content: OutTime },
}
datastore.insert(entity).then(() => {
// Task inserted successfully.
});
// [END datastore_upsert]
});
答案 0 :(得分:2)
这是预料之中的,您不能仅添加/修改现有实体的属性-整个实体都需要重写。因此,您需要State Enrollment Severity
CA 100 Low
MA 25 Medium
CA 25 Medium
WA 40 High
CA 40 High
ID 40 High
实体,向其添加新属性,然后get
/ update
将其返回到数据存储。
来自您引用的文档中的Updating an entity(强调我的意思):
所提供的数据将覆盖现有实体。整个对象必须发送到Cloud Datastore 。如果实体不存在,则 更新将失败。如果要更新或创建实体,请使用
upsert
,如前所述。使用transaction可让您 在单个原子中执行upsert
和get
操作 交易。
并且来自Creating an entity(重点是我):
您可以使用
update
(将实体保存到Cloud Datastore 如果存在,实体将覆盖该实体)