表达式
!<exp>
- 操作数:表达式
- 子表达式为真(1)时,非表达式为假(0),反之亦然:
<exp>结果 | 非表达式结果 |
---|---|
0 | 1 |
1 | 0 |
示例
示例图集
![](https://img.ultipa.cn/draw/draw_060a6c5dfe884a59bce022892f28fa5f.jpg?v='')
在一个空图集中,依次运行以下各行语句创建示例图集:
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:"test@yahoo.cn"},{_id:"P002",_uuid:2,age:27,email:"test@ultipa.com"}])
insert().into(@student).nodes([{_id:"S001",_uuid:3,age:27,email:"test@yeah.net"},{_id:"S002",_uuid:4,age:20,email:"test@w3.org"},{_id:"S003",_uuid:5,age:25,email:"test@gmail.com"}])
一般用法
本例查找age属性值不为27的@student点:
find().nodes({@student && !(age==27)}) as n
return n{*}
|---------------- @student ---------------|
| _id | _uuid | age | email |
|-------|-------|-------|-----------------|
| S002 | 4 | 20 | test@w3.org |
| S003 | 5 | 25 | test@gmail.com |
过滤器{@student && !(age==27)}
不能写成{!(@student.age == 27)}
,否则分解后相当于{!@student || !(age == 27)}
,此时结果为:
|--------------- @professor --------------|
| _id | _uuid | age | email |
|-------|-------|-------|-----------------|
| P001 | 1 | 53 | test@yahoo.cn |
| P002 | 2 | 27 | test@ultipa.com |
|---------------- @student ---------------|
| _id | _uuid | age | email |
|-------|-------|-------|-----------------|
| S002 | 4 | 20 | test@w3.org |
| S003 | 5 | 25 | test@gmail.com |