使用seraph包装器创建新对象时提供自己的对象ID

时间:2015-12-03 01:18:01

标签: angularjs node.js neo4j

如果我在db.save({id: 'someid' , name: object.name});

上提供了ID

返回错误,表示id不存在。好吧,我正在尝试创建一个id值为我选择的新对象。有没有办法实现这个目标?

它在文档中说。 Create or update a node. If object has an id property, the node with that id is updated. Otherwise, a new node is created.

我想使用我选择的id创建一个对象,以便稍后我可以使用它进行更新。每次我必须更新它时,我不想读取现有对象的id。

基本上,我的要求是当我创建一个新对象时,我应该能够传入我选择的id。 我在neo4j文档周围使用seraph包装器可以在这里找到:https://github.com/brikteknologier/seraph

1 个答案:

答案 0 :(得分:1)

默认情况下,Seraph将属性名称id视为保留关键字。在这种情况下,如果在传递给id的对象中指定了save()属性,则Seraph假定您正在尝试使用该标识符值更新现有节点。 / p>

seraph()初始化函数的文档声明它使用id作为默认名称:

  

属性seraph将在创建新节点时添加到新节点   用于在使用node.save等执行更新时查找节点。

如果您还要为节点指定自己的标识符属性,则必须使用以下选项之一:

  1. 使用id以外的属性名称作为标识符。
  2. 传递id选项,如文档所示,除了" id"之外的其他值。 (例如," foo")调用seraph()初始化函数时。如果您这样做,那么您可以使用id作为您自己的标识符。
  3. 请注意,为了使用您自己的标识符更新节点,您首先需要调用find()