ArangoDB:处理Traversal中的悬空边缘

时间:2016-02-23 05:32:54

标签: arangodb

我正在使用ArangoDB 2.8和arangojs。

由于某些原因,我的数据中有悬空边缘(我无法改变)。在遍历复杂扩展器功能中,我在将其推送到扩展器的连接数据结构之前寻找特定文档:

var refDoc = someColl.document(obj1[someProp]);

connected.push( edge:theEdge, vertex: refDoc });

如果搜索到的文档不存在,如何避免someColl.document()引发的错误停止遍历扩展器?

我尝试过使用节点式回调但没有成功。 我应该尝试(如何?)在服务器上的模块上添加es6-promise或bluebird?

谢谢。

1 个答案:

答案 0 :(得分:1)

由于迈克威廉姆森已经吮吸,try {} catch是可行的方法:

const arangodb = require('@arangodb');

try {
 var refDoc = someColl.document(obj1[someProp]);
 connected.push( edge:theEdge, vertex: refDoc });
}
catch (ex) {
  if ((ex not instanceof ArangoError) or
      (ex.errorNum !== arangodb.ERROR_ARANGO_DOCUMENT_NOT_FOUND)) {
    throw(ex)
  }
}

因此,您可以忽略文档未找到错误,但继续抛出其他(可能更致命)错误。