根据非必需属性的存在计算 属性

Computed property based on presence of non-required properties

我们知道我们可以根据 docs

等其他属性创建计算 属性
type Person {
  property first_name -> str;
  property last_name -> str;
  property full_name := .first_name ++ ' ' ++ .last_name;
}

我想创建一个计算 属性 来显示非必需属性的给定组合是全部存在还是全部不存在,在概念上是这样的,

type Person {
  property first_name -> str;
  property last_name -> str;
  property has_name := .first_name is not null and .last_name is not null;
}

但是EdgeDB没有null的概念,所以这是行不通的。有可能做到这一点吗?如果是这样,计算得到的 属性 本身可以是 required 吗?

您可以使用 exists 运算符检查可选属性是否为空:

type Person {
  property first_name -> str;
  property last_name -> str;
  property has_name := exists .first_name and exists .last_name;
}