我正在尝试使用 golang 将项目放入 Google 数据存储区。
虽然我总是遇到datastore: invalid key错误,但无法弄清楚这里出了什么问题。我正在使用这个"cloud.google.com/go/datastore"包。
首先,我尝试获取父节点的密钥(不确定这是正确的方法,但我最终得到了一个datastore.Keyas parentKey)。
现在,当使用 as parent 创建一个新密钥parentKey,然后尝试使用put该项目时,newKey我收到了invalid key错误消息。
q := datastore.NewQuery("Supplier")
.Namespace("inventory")
.Filter("Name =", "supplier-01")
.Limit(1)
var s []supplier
parentKey, err := client.GetAll(ctx, q, &s)
if err != nil || len(parentKey) < 1 {
fmt.Printf("could not find parent key: %v\n", err)
return
}
newKey := datastore.IncompleteKey("InventoryItem", parentKey[0])
//newKey := datastore.NameKey("InventoryItem", item.Name, parentKey[0])
if _, err := client.Put(ctx, newKey, &item); err != nil {
fmt.Printf("could not save item: %v\n", err)
return
}
NameKey我用和都试过了,IncompleteKey但都没有运气。
我显然在这里遗漏了一些东西,但无法弄清楚它是什么以及如何将我的项目作为另一个节点的子节点写入数据存储区。
SMILET
相关分类