从 select 中插入记录到 OrientDB 类的嵌入字段 [英] Insert records into embedded field of OrientDB class from select

查看:59
本文介绍了从 select 中插入记录到 OrientDB 类的嵌入字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在评估 OrientDB 数据库.

I am evaluating OrientDB database.

我有两个从关系数据库导入的文档类.

I have two document classes imported from a relational database.

class Order with properties (ID: integer, OrderItems: EmbeddedList of OrderItem) 

class OrderItem with properties (ID: integer, OrderID: integer, PropA: string)

两个类都填充了来自数据库的数据(字段 Order.OrderItems 除外).

Both classes are filled with data from the database (except field Order.OrderItems).

现在我想根据 OrderID 将 OrderItem 类中的数据插入到 Order 类中.

Now I would like to insert data from class OrderItem into class Order based on OrderID.

我尝试过 SQL 之类的

I have tried SQL like

update Order set OrderItems = (select from OrderItem where OrderID = Order.ID)

没有成功,有类似的错误

without success, with error like

Order.OrderItems"字段已声明为 EMBEDDEDLIST,但值为具有有效 RecordId 的文档...

The field 'Order.OrderItems' has been declared as EMBEDDEDLIST but the value is document with the valid RecordId ...

我知道嵌入的记录不应该有 RecordId 所以我试过了

I do understand that embedded record should not have RecordId so I have tried

update Order set OrderItems = (select PropA from OrderItem where OrderID = Order.ID)

没有成功,有类似的错误

without success, with error like

字段 'Order.OrderItems' 已声明为带有链接类 'OrderItem' 的 EMBEDDEDLIST 但该记录没有类 ...

The field 'Order.OrderItems' has been declared as EMBEDDEDLIST with linked class 'OrderItem' but the record has no class ...

我也试过

update Order
set OrderItems = (select @class, PropA from OrderItem where OrderID = Order.ID)

没有成功.

还有其他方法吗(OrientDB 2.1.4)...

Is there any other way (OrientDB 2.1.4) ...

啤酒

推荐答案

我找到了解决方案

update Order
set OrderItems = (select $current.exclude('@rid') from OrderItem where $parent.$current.ID = OrderID)

这篇关于从 select 中插入记录到 OrientDB 类的嵌入字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆