我有一个带有EMBEDDEDSET
/EMBEDDEDLIST
字段的类的 OrientDB 数据库,每次更改某些内容(例如记录日志)时,我都需要更新该字段。
我正在使用普通的insert
:
insert into order set ..., logLikeField = "A new value"
通过这样做,新值将替换旧值,我需要将其添加到列表中,但我无法在文档中找到如何执行此操作。
现在我正在取出列表并添加新值并替换旧列表(首先是 aselect
然后是update
),但我不喜欢它,我需要用尽可能少的查询来完成它。
顺便说一句,我使用的是 Java(没有 JDBC)。
[编辑]
正如我在下面的答案中所建议的那样:
insert into order add logLikeField = "A new value"
它在 OrientDB Studio 中运行良好,但是当我从我的程序中调用它时它什么也没做。
这是代码(西班牙语):
db.command(command("update ordenes set fecha = ?, numero = ?, producto = ? where @rid = " + orden.id)).execute(orden.fecha, orden.numero, orden.producto);
db.command(command("update ordenes add registro = ? where @rid = " + orden.id)).execute(registro);
我想要一个单行解决方案,但只要它不是一个选择它就很好。
这是命令方法:
public OCommandSQL command(sql){
return new OCommandSQL(sql);
}
第一个命令正确地完成了工作,但另一个命令我什么也没得到,甚至没有异常。
我的方法有什么问题?这可能是一个错误吗?
OrientDB 1.3.0 - Java 1.7.0 - Windows 7 64