如何在EdgeDB中更新嵌套对象?已知Foo ID更新关联Bar的baz属性
通过Foo的ID更新关联Bar对象的baz属性
给定如下Schema:
type Foo { required link bar -> Bar; } type Bar { required property baz -> bool; }
已知某个Foo对象的ID,要更新它关联的Bar对象的baz属性,有两种实用方法:
方法一:分步操作
先通过Foo的ID找到对应的Bar的ID,再单独更新Bar:
- 查询关联Bar的ID:
SELECT Foo.bar.id FILTER Foo.id = <uuid>'你的Foo对象ID';
- 用查到的Bar ID更新
baz:
UPDATE Bar SET { baz := true } -- 这里替换成你需要的布尔值 FILTER Bar.id = <uuid>'上面查到的Bar-ID';
方法二:一步式嵌套更新
直接通过Foo的关联关系定位目标Bar,一次完成更新,更高效:
UPDATE ( SELECT Foo.bar FILTER Foo.id = <uuid>'你的Foo对象ID' ) SET { baz := false }; -- 替换为目标布尔值
或者用过滤条件的写法:
UPDATE Bar SET { baz := true } FILTER Bar = (SELECT Foo.bar FILTER Foo.id = <uuid>'你的Foo对象ID');
内容的提问来源于stack exchange,提问作者monomonedula
相关产品推荐
相关产品推荐

