orientdb - OrientDB 无法在相同节点之间创建多条边
问题描述
我想使用单个边在节点 A 和节点 B 之间创建多个关系,但该关系包含不同的属性。
边缘:
EPartner(描述、关系日期、类型、重量)
我试过的:
CREATE EDGE EPartner FROM #rid TO #rid CONTENT 'something'
当我创建第一个关系时,上面的行是有效的,但是当我尝试在相同的源和相同的目标之间添加新的关系时,以前的记录会被新的记录替换。
我期望在同一边缘有多个记录,具有相同的目标和源,只是具有不同的属性。这可能吗 ?请给我一些关于尝试什么的提示。
解决方案
只是试图验证你的情况。不幸的是,如果没有在边缘声明约束,一切都按预期工作。这是我的实验日志(主动式控制台)
2.6.3 :001 > V.create_class :test
=> Test
2.6.3 :002 > E.create_class :test_edge
=> TEST_EDGE
2.6.3 :003 > t = Test.create name: :test
16.08.(03:46:15) INFO->CREATE VERTEX test set name = ':test:'
2.6.3 :004 > t1 = Test.create name: :test2
16.08.(03:46:28) INFO->CREATE VERTEX test set name = ':test2:'
2.6.3 :005 > t.assign vertex: t1, via: TEST_EDGE, attributes: { edge_count: 'first' }
16.08.(03:46:42) INFO->CREATE EDGE test_edge from #29:0 to #30:0 content {"edge_count":"first"}
2.6.3 :006 > t.assign vertex: t1, via: TEST_EDGE, attributes: { edge_count: 'second' }
16.08.(03:46:48) INFO->CREATE EDGE test_edge from #29:0 to #30:0 content {"edge_count":"second"}
2.6.3 :007 > t.reload!
2.6.3 :008 > t.out.to_human
=> ["<TEST_EDGE[#35:0] :.: 29:0->{ edge_count: first }->30:0>",
"<TEST_EDGE[#36:0] :.: 29:0->{ edge_count: second }->30:0>"]
在顶点之间提供两条边。
推荐阅读
- java - 使用gradle在eclipse中导入spring boot应用
- mysql - 如果不存在字符模式,MySQL 仅替换单个字符
- excel - 值之间的 Excel 查找
- php - MySQL & PHP - 从数据库表中获取国家降序列表的最佳方法
- php - 在 WooCommerce 中结帐期间预定义的运输邮政编码验证
- python - 如何处理具有相同ID但在python中的列中有一些不同值的数据框中的记录
- reactjs - React-Redux 中的纯组件状态错误
- java - ScheduledExecutorService 等待任务完成,挂起的任务是否堆积到最终中断主线程?
- jboss - 在虚拟数据库的 Teiid ddl 中提取和处理选择/更新查询约束
- keras - 带有 keras 的 CNN:输入 0 与 flatten_2 层不兼容:预期 min_ndim=3,发现 ndim=2