OrientDB Query Result набор вершин с пустой коллекцией ребер, вершин
Это может быть простой вопрос, но я запутался, пожалуйста, помогите.....
Я использую OrientDB 2.1.9 и экспериментирую с базой данных VehicleHistoryGraph. В Studio, режиме просмотра установите ограничение только на 9 записей. Сейчас я ввожу этот простой запрос
select out() from Person
Набор результатов, который я получаю, составляет 9 записей, НО только два из них купили автомобиль. Остальные отображаются с пустыми коллекциями []. Это не хорошо, я в замешательстве. Я хотел бы получить обратно только те две вершины с наборами ребер!
Как мне вернуть этих двух человек, которые что-то купили? Я также заметил, что в select есть оператор размотки. Это полезно в этом случае, вы можете привести пример?
1 ответ
Ваш запрос запрашивает out(), поэтому out () вычисляется во всех случаях, и вы показываете результаты. Если вам нужны только строки, для которых out (). Size() > 0, вы можете построить запрос следующим образом:
select out() from v let n=out().size() where $n > 0
Если вы думаете, что нужно уметь писать это более лаконично, например, так:
select out() as n from v where n > 0
затем вступите в клуб (например, поддержав этот запрос на улучшение).
(select out() from v where out().size() > 0
поддерживается.)