gpt4 book ai didi

google-app-engine - google app engine go datastore 使用 key 检查实体是否存在

转载 作者:IT王子 更新时间:2023-10-29 01:59:06 25 4
gpt4 key购买 nike

给定一个实体的 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 entity
datastore.Get(ctx, datastore.NewKey(ctx, entityKind, stringId, 0, nil), entity);


有没有更好的方法来检查实体是否存在,而不是为给定的 stringId 检索完整的实体?

最佳答案

要仅检索键,请将 KeysOnly() 添加到查询的末尾,即

q := datastore.NewQuery(entityKind).Filter(...).KeysOnly()

是的,仅键查询应该更快,引自 doc :

A keys-only query returns just the keys of the result entities instead of the entities themselves, at lower latency and cost than retrieving entire entities

顺便说一句,要通过它的键检索实体,您还可以使用特殊属性 __key__,即

qKey := datastore.NewKey(ctx, entityKind, stringId, 0, nil)
q := datastore.NewQuery(entityKind).Filter("__key__ =", qKey)

关于google-app-engine - google app engine go datastore 使用 key 检查实体是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34985161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com