首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Datomic -自动收回缺失的零部件实体

Datomic -自动收回缺失的零部件实体
EN

Stack Overflow用户
提问于 2017-07-26 15:53:44
回答 1查看 108关注 0票数 1

我有一个嵌套的结构(也可以是深度嵌套的)。所有嵌套的实体都被标记为组件。Creation运行得很好。

代码语言:javascript
复制
{:db/id (d/tempid :db.part/user)
 :tree/name "some tree"
 :tree/nodes [{:node/name "Node1"
               :node/prop "some prop"}
              {:node/name "Node2"
               :node/prop "another prop"}]}

假设上面的树已经创建好了。我拉出它进行更新,它看起来像这样:

代码语言:javascript
复制
{:db/id 1
 :tree/name "some tree"
 :tree/nodes [{:db/id 2
               :node/name "Node1"
               :node/prop "some prop"}
              {:db/id 3
               :node/name "Node2"
               :node/prop "another prop"}]}

从UI中删除第一个节点:

代码语言:javascript
复制
{:db/id 1
 :tree/name "some tree"
 :tree/nodes [{:db/id 3
               :node/name "Node2"
               :node/prop "another prop"}]}

如何自动删除db/id为2的节点?我唯一能想到的就是拉出节点,并将它们与我提交的节点进行比较。因为这个结构可以嵌套得更深,所以我需要递归地遍历集合。有没有一种更自动的方法来做这件事?

EN

回答 1

Stack Overflow用户

发布于 2017-07-26 21:05:48

内置的事务函数retractEntity将递归地收回组件实体:

http://docs.datomic.com/transactions.html#dbfn-retractentity

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45320708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档