7

我有一个带有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

4

1 回答 1

7
update order add logLikeField = "A new value"
于 2013-06-04T10:42:37.920 回答