Как добавить, удалить и проверить наличие LINKSET в OrientDB?

Я использую функции Javascript на стороне сервера OrientDB для определения бизнес-логики. Мой вопрос заключается в том, как добавить, удалить и проверить наличие с помощью LINKSET в функциях Javascript OrientDB?

Например, если my company.employees = [#4:1, #4:5, #4:3]

  1. Как я могу добавить # 4: 6 в набор ссылок? После сложения должно быть [#4:1, #4:5, #4:3, #4:6]

  2. Как я могу удалить # 4: 5 из набора ссылок? После удаления должно быть [#4:1, #4:3, #4:6]

  3. Если я снова добавлю # 4: 1 в набор ссылок, будет ли он проверять наличие дубликатов и возвращать ошибку, или мне нужно проверить проблематично перед добавлением в набор ссылок? Если мне нужно это сделать, как это сделать?

Я уверен, что должны быть какие-то методы для добавления, удаления и проверки наличия в наборе ссылок и карте ссылок, я не просто знаю о них.

Любые указатели будут полезны.


person Gaurav Dhiman    schedule 28.03.2014    source источник


Ответы (2)


Посмотрите официальную документацию: https://github.com/orientechnologies/orientdb/wiki/SQL-Update#example-3-add-a-value-into-a-collection. Так:

1) Если ваша запись имеет RID # 13:33:

update #13:33 add company.employees = #4:6

2) То же самое (https://github.com/orientechnologies/orientdb/wiki/SQL-Update#example-4-remove-a-value-from-a-collection):

update #13:33 remove company.employees = #4:5

3) С набором у вас не может быть дубликатов, поэтому, если вы добавляете один и тот же элемент несколько раз, он просто игнорируется без ошибок.

person Lvca    schedule 29.03.2014
comment
В качестве ссылки на других, кто находит этот поиск, как и я, для запроса в коллекции: выберите * из компании, где сотрудники содержат # 4: 5 - person 11101101b; 09.07.2016
comment
что, если я хочу получить всех сотрудников компании? Как это сделать? - person Michael; 23.02.2018
comment
Эти ссылки больше не работают, а текущие примеры обновлений не включают add. Мне не удалось заставить этот синтаксис работать с моим набором ссылок. orientdb.com/docs/3.0.x/sql/SQL-Update. html - person galactikuh; 18.08.2019

Согласно этому сообщению, синтаксис изменился в OrientDB v3.0:

Теперь, чтобы добавить элемент в набор ссылок, вам нужно использовать синтаксис конкатенации, который находится здесь. http://orientdb.com/docs/3.0.x/sql/SQL-Syntax.html в объединении массивов

Таким образом, ваш пример добавления будет:

update #13:33 set company.employees= company.employees || #4:5

Удаление не изменилось, поэтому синтаксис остался прежним:

update #13:33 remove company.employees = #4:5
person galactikuh    schedule 18.08.2019