2017-01-24 4 views
1

Я еще не понял, как получить значение @rid из метаданных записи, используя python 3.5 с pyorient client.command для запуска такого SQL-запроса.как получить значение @rid из запроса, выберите из User, где name = 'Nicole', используя pyorient

Предположим, что я создал класс User, используя следующий запрос в client.command(query) pyorient. Для простоты будут показаны только запросы вызовов здесь:

CREATE User EXTENDS V 
CREATE PROPERTY User.name IF NOT EXISTS STRING (MANDATORY TRUE, NOTNULL TRUE) 
CREATE INDEX User.name ON User (name) UNIQUE 

Давайте создадим словарь для хранения указателей недавно созданной вершины

rec = {} 

Теперь мы добавим некоторую вершину:

rec['Cleo'] = CREATE VERTEX User CLUSTER User CONTENT {'name': 'Cleopatra'} 
rec['Alex'] = CREATE VERTEX User CLUSTER User CONTENT {'name': 'Alex'} 

Посмотрим на значение rec['Alex']:

rec['Alex'] 
[<pyorient.otypes.OrientRecord at 0x7fc39cd69c50>] 

Скажем так, мы хотим знать @rid для Alex, поэтому позже мы можем использовать его для создания Edges среди других классов.

Если я бегу quety помощью orientdb студии можно увидеть @rid:

enter image description here

, но, если я запускаю тот же запрос с использованием client.command я получаю список с двумя рекордными указателями , Так это же самое, что результат от rec['Alex']

так, если я rec['Alex'][0].oRecordData, чтобы получить данные записи, я только получаю обратно:

{'name': 'Alex'} 

(1) Как я могу хранить rid в переменная, когда я создаю новую вершину?

(2) Как я могу получить избавление от записи, если вы знаете, скажем, свойство name?

ответ

1

С драйвером python вам нужно сделать: ret._rid для доступа к избавлению

+0

Отлично! так просто просто '._rid' !!! ;) – Jobel

Смежные вопросы