Как читать из хранилища данных с помощью запроса-предка и последних библиотек golang

# #go #google-cloud-platform #google-cloud-datastore #deprecated #ancestor

#Вперед #google-облачная платформа #google-облако-хранилище данных #устарело #предок

Вопрос:

Я хочу прочитать все объекты из типа хранилища данных (около 6 объектов / записей).

У меня есть хранилище данных, которое имеет ключ к странному типу, который я пытаюсь понять. Я не могу найти никакой уникальности в ключе a для выполнения запроса. The table looks like this:
Хранилище данных GCP, представляющее данные, которые я хочу прочитать в своем приложении Go

When I click on a record, it looks like this:
С этого момента открывается и используется ключевой литерал, чтобы попытаться получить записи в приложении Go

`Я могу выполнить запрос предка в консоли следующим образом:« Хранилище данных GCP запрашивается с помощью запроса предка

Отлично! Итак, теперь я хочу получить эти данные из моего приложения Golang? Но как? Я вижу много онлайн-решений об использовании q.Get(...) // where q is a *Query struct любого из этих решений, которые не будут работать, потому что они импортируются google.golang.org/appengine/datastore . Я понимаю, что это устаревшее и устаревшее. Итак, я хочу решение, которое импортирует cloud.google.com/go/datastore .

Я попробовал что-то в этом роде, но не очень повезло: сначала попробуйте использовать GetAll и query

Я попробовал следующее: вторая попытка попытки использовать запрос-предок… еще не готово

Наконец, я попытался получить одну запись напрямую: наконец, я попытался получить запись напрямую

Во всех случаях значение my err не равно нулю, и dts значение, которое должно быть заполнено из запроса хранилища данных, также равно нулю.

Любые рекомендации, которые помогут мне понять, как запрашивать этот тип ключа? Я упускаю что-то фундаментальное в том, как эта таблица вводится и запрашивается?

Спасибо

Затем я попробовал это:

Комментарии:

1. Пожалуйста, отредактируйте свой пост, включите коды вместо рисунка.

Ответ №1:

Кажется, вам просто не хватает вашего пространства имен

 // Merchant Struct
type MerchantDetails struct {
    MEID  string
    LinkTo *datastore.Key
    Title string
}

// Struct array to store in
var tokens []MerchantDetails

// Ancestor Key to filter by
parentKey := datastore.NameKey("A1_1113", "activate", nil)
parentKey.Namespace = "Devs1"

// The call using the new datastore UI. Basically query.Run(), but datastore.GetAll()
keys, err := helpers.DatastoreClient.GetAll(
    helpers.Ctx,
    datastore.NewQuery("A1_1112").Ancestor(parentKey).Namespace("Devs1"),
    amp;tokens,
)
if err != nil {
 return "", err
}

// Print all name/id from the found values
fmt.Printf("keys: %v", keys)