- Expression: @
<schema>
- Operand: string constant
When combined with property filtering, i.e., when
@<schema> && <property> == 123
is shortened as@<schema>.<property> == 123
, the<property>
cannot be _id or _uuid
The
@<schema>
and@<schema>.<property>
that appear in an Ultipa filter find the metadata of a specific schema and/or property, which is different than the@<schema>
and@<schema>.<property>
that appear in some other chain statements that find a specific schema and/or property in a graph model. Please read GraphSet | Schema | Property for more information.
Sample graph: (to be used for the following examples)
Run below UQLs one by one in an empty graphset to create graph data:create().node_schema("professor").node_schema("student")
create().node_property(@*, "age", int32).node_property(@*, "email", string)
insert().into(@professor).nodes([{_id:"P001",_uuid:1,age:53,email:"[email protected]"},{_id:"P002",_uuid:2,age:27,email:"[email protected]"}])
insert().into(@student).nodes([{_id:"S001",_uuid:3,age:27,email:"[email protected]"},{_id:"S002",_uuid:4,age:20,email:"[email protected]"},{_id:"S003",_uuid:5,age:25,email:"[email protected]"}])
Schema
Example: Find nodes of @student
find().nodes({@student}) as n
return n{*}
|---------------- @student ---------------|
| _id | _uuid | age | email |
|-------|-------|-------|-----------------|
| S001 | 3 | 27 | [email protected] |
| S002 | 4 | 20 | [email protected] |
| S003 | 5 | 25 | [email protected] |
Analysis: This filter is equivalent to {this.@ == "student"}
Schema & Property
Example: Find nodes of @student, whose age is 27
find().nodes({@student.age == 27}) as n
return n{*}
|---------------- @student ---------------|
| _id | _uuid | age | email |
|-------|-------|-------|-----------------|
| S001 | 3 | 27 | [email protected] |
Analysis: This filter is equivalent to {@student && age == 27}
.