【发布时间】:2020-03-23 14:30:41
【问题描述】:
我是 ArangoDB 的新手,创建了两个文档集合
帐户
付款
我不能一条一条地遍历记录并添加_from和_to,记录数量巨大,
Account、Customer 和 TrxID 需要 3 个节点
应该根据两个 Document Collection 之间的值进行链接。
我可以知道任何文档或示例代码
【问题讨论】:
标签: arangodb
我是 ArangoDB 的新手,创建了两个文档集合
帐户
付款
我不能一条一条地遍历记录并添加_from和_to,记录数量巨大,
Account、Customer 和 TrxID 需要 3 个节点
应该根据两个 Document Collection 之间的值进行链接。
我可以知道任何文档或示例代码
【问题讨论】:
标签: arangodb
首先让我回答您最初的问题,然后为您的用例提供提示。
您是对的,节点和边都是 ArangoDB 中的完整 JSON 文档,但您必须将边导入特殊的边集合。如果你使用arangoimport来创建边,你可以使用下面的命令作为一个
arangoimport --机器上文件的文件路径 --collection 你的收藏名称 --create-collection true --type csv --create-collection-输入边缘
如果该集合尚不存在,请使用“create collection true”,如果该集合已存在,则无需指定,只需将其省略即可。请确保您的所有边缘都具有 _from 和 _to 属性,它们是边缘连接的节点的 ID。然后 ArangoDb 将使用 _from 和 _to 自动创建边缘索引。
关于您的示例: 我想这是一种欺诈或洗钱的例子。对于其他图形数据库,您可能会得到建议,将交易用作节点,将帐户/客户和 cparty 用作边缘。使用 ArangoDB,您可以做相反的事情并使用事务作为您的优势。您还拥有完整的 JSON 文档作为边缘,并且可以在那里存储任意数据。以这种方式查看数据可能更直观、更自然。此外,您还可以将边缘集合视为普通文档集合,并执行聚合、连接或您认为必要的任何其他访问模式。
更新: 根据我对您的数据模型的理解,银行交易从发送方的 AccountNo (_from) 到接收方的 CounterpartyAccID (_to)。这两个属性应该成为边缘的 _from 和 _to 属性,这些属性必须与其他交易详细信息(如 TrxID 和交易金额)一起存储在边缘集合中。您也可以通过左侧 Collections 选项卡中的 ArangoDB WebUI 创建边缘集合。
不确定这是否有助于处理大量数据,但您可以在此处查看使用 AQL 创建边缘:https://www.arangodb.com/docs/stable/aql/tutorial-traversal.html#creating-the-edges 我们正在编写更多关于创建边缘的教程,但还没有 ETA
希望能帮上忙
最好的,一月
【讨论】: