给定实体的 stringId 键,如何检查数据存储中是否有相应的实体。我不想完全获取实体。我想检查实体是否存在。如果我获取完整实体以检查其存在,是否会对性能产生影响?或者,还有更好的方法?var Person struct { stringId string //string id which makes the key //many other properties.}//insert into datastore_, err := datastore.Put(ctx, datastore.NewKey(ctx, entityKind, stringId, 0, nil), entity)//retrieve the entitydatastore.Get(ctx, datastore.NewKey(ctx, entityKind, stringId, 0, nil), entity);有没有更好的方法来检查实体是否存在,而不是检索给定 stringId 的完整实体?
1 回答
翻翻过去那场雪
TA贡献2065条经验 获得超13个赞
要仅检索键添加KeysOnly()
到查询的末尾,即
q := datastore.NewQuery(entityKind).Filter(...).KeysOnly()
是的,仅键查询应该更快,引用自文档:
仅键查询仅返回结果实体的键而不是实体本身,与检索整个实体相比,延迟和成本更低
顺便说一句,要通过其键检索实体,您还可以使用特殊属性__key__
,即
qKey := datastore.NewKey(ctx, entityKind, stringId, 0, nil) q := datastore.NewQuery(entityKind).Filter("__key__ =", qKey)
- 1 回答
- 0 关注
- 171 浏览
添加回答
举报
0/150
提交
取消