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 поддерживается.)

Другие вопросы по тегам