代码之家  ›  专栏  ›  技术社区  ›  Sanka Darshana

通过javascript API向neo4j插入对象

  •  0
  • Sanka Darshana  · 技术社区  · 8 年前

    如何使用JS API将整个对象插入Neo4J?(不提供所有财产)

    我试过以下方法。( link )

    session.run('UNWIND $obj as obj2 \n CREATE (p:Animals) \n set p=obj2 \n RETURN p', { obj: results.value })
    

    哪里 results.value = {id:"abc", name:"xyz", createdOn: new Date()}

    但它给出了以下错误

    Neo4jError:属性值只能是基元类型或其数组

    有人能帮忙吗?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Bruno Peres    8 年前

    Neo4j数据库支持类型的属性( docs ):

    • 整数
    • 浮动
    • 一串
    • 布尔型
    • 这些类型的列表

    可能是存储在 results.value 具有包含复杂对象的属性,类似于:

    {
        prop1 : 1
        complexProp : {
            propX : "abc",
            propY : 1,
        }
    }
    

    在上述结构的情况下 complexProp 属性将是导致错误的原因,因为它的类型不适合任何Neo4j支持的类型。

    所以我认为你有两种选择。

    1-将所有子属性移动到根,如:

     {
         prop1 : 1
         propX : "abc",
         propY : 1
     }
    

    2-为创建不同的节点类型 complexType 属性,并使用两个节点之间的关系。