首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用blueprints -OrientDB批量插入或更新顶点属性

使用blueprints -OrientDB批量插入或更新顶点属性
EN

Stack Overflow用户
提问于 2015-11-03 18:58:38
回答 1查看 567关注 0票数 2

我使用的是OrientDB 2.1.4和blueprints-core-2.6.0。

我需要更新现有顶点上的值,或者如果不存在,则创建新顶点。(预计每45秒30k个顶点)

我的顶点类是: Device(Name,Type,ActiveSessionCount) --每个设备的"Name“都是唯一的实体。

如果设备存在,则需要更新设备上的ActiveSessionCount,否则创建新的设备顶点。

代码语言:javascript
复制
if (graph.getVertices(keyName, key).iterator().hasNext()) {
    vertex = (OrientVertex) graph.getVertices(keyName, key).iterator().next();
} else {
    vertex = graph.addVertex(className, attributeName, key);
}

我正在尝试检查顶点是否存在,如果顶点已经存在,我已经获取了vertex对象以进行进一步更新,否则创建了一个新的vertex对象。

虽然,这是有效的,它需要几分钟来执行30k个记录,而我需要在45秒内完成相同的操作。

EN

回答 1

Stack Overflow用户

发布于 2015-11-04 17:24:38

尝试使用UPSERT。

UPSERT在记录已经存在的情况下更新记录,或者在记录不存在的情况下插入新的记录,所有这些都在一条语句中完成。

代码语言:javascript
复制
g.command(new OCommandSQL("update Device set Name='Device 3',Type='Type 3',ActiveSessionCount=3  upsert where Name='Device 3'' "));

致以敬意,

米凯拉

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33497382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档