У меня есть следующий документ в Couchbase:
{
"id": "ee::brown",
"type": "ee",
"firstName": "John",
"lastName": "Brown",
"email": "jbown@gmail.com"
}
Приведенный ниже код пытается получить поле lastName для id = "ee :: brown"
ops := []gocb.LookupInSpec{
gocb.GetSpec("lastName", &gocb.GetSpecOptions{}),
}
getResult, err := collection.LookupIn("ee::brown", ops, &gocb.LookupInOptions{})
if err != nil {
panic(err)
}
var lastName string
err = getResult.ContentAt(0, &lastName)
if err != nil {
panic(err)
}
fmt.Println(lastName)
Запуск этого кода генерирует следующее сообщение:
Not Found (KEY_ENOENT)
Выполнение следующего запроса в инструментальных средствах Query возвращает полный документ:
select * from mybucket where id="ee::brown"
Также попытался установить для поля IsXttra значение true следующим образом, но оно также не сработало:
ops := []gocb.LookupInSpec{
gocb.GetSpec("lastName", &gocb.GetSpecOptions{IsXattr: true}),
}
Также не удалось найти определение IsXattr для GetSpecOption. Для чего это? Помогите пожалуйста!
Среда: macOS Catalina версия 10.15.3; go -sdk: импорт "github.com/couchbase/gocb/v2"; Couchbase: Enterprise Edition 6.5.0 сборка 4960