Как прочитать произвольный объект из arangodb с помощью курсора.ReadDocument () - PullRequest
1 голос
/ 08 мая 2019

Я пытаюсь построить довольно обобщенный сервис для создания графов в arangodb.

В моей функции ReadVertex() я хотел бы иметь возможность читать свойство с произвольными полями вершины исчитайте его в переменную, предпочтительно в строку, без необходимости создавать конкретную структуру с тегами json, жестко закодированными для определенных свойств.

У меня нет проблем с вставкой произвольных объектов в качестве свойства вершины, и я попыталсячтение их в строку, но оно всегда получается пустым.

Пример того, чего я хотел бы достичь: если у вершины есть свойство: "Prop1": {"Nested1": true, "Nested2": false} и свойство "Prop2": "Just a string" в моем ReadVertex() функция Я хотел бы иметь возможность сделать что-то вроде

// query the database and get a cursor containing prop1 and prop2

var prop1 someType
cursor.ReadDocument(ctx, &prop1)
fmt.Println(prop1.String()) // should print {"Prop1": {"Nested1": true, "Nested2": false}}

var prop2 someType
cursor.ReadDocument(ctx, &prop2)
fmt.Println(prop2.String()) // should print {"Prop2": "Just a string"}

И я бы хотел, чтобы это работало, если prop1 и prop2 будут одного типа.

1 Ответ

0 голосов
/ 08 мая 2019

Получается, что ответ был намного проще, чем я думал.Это работает, если prop1 и prop2 имеют тип interface{}, он считывает данные в виде карты, а затем все ключи на карте являются строками (что в моем случае), чтобы превратить их встроку json, которую я могу просто использовать json.Marshal() и привести возвращенный массив байтов в виде строки.

...