javascript - 通过 javascript API 将对象插入到 neo4j

标签 javascript neo4j cypher

如何使用 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: Property values can only be of primitive types or arrays thereof

谁能帮忙解决这个问题吗?

最佳答案

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

  • 整数
  • float
  • 字符串
  • bool 值
  • 这些类型的列表

存储在 results.value 中的对象可能有一个包含复杂对象的属性,例如:

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

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

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

1 - 将所有子属性移至根,​​例如:

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

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

关于javascript - 通过 javascript API 将对象插入到 neo4j,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49557389/

相关文章:

javascript - 有没有办法用子列表迭代无序列表 - 没有 jQuery?

javascript - Jquery:如何在用户单击除该 div 之外的任何内容时隐藏该 div。无覆盖

neo4j - 如何在 Neo4j 3.0.1 中配置查询超时

neo4j - 为 OrientDB 重写 neo4j 查询

neo4j - 获取满足 Neo4J 条件的断开集群的数量

javascript - 在 Nodejs 中将 SELECT sql 变量数组从一个文件发送到另一个文件

javascript - 更新openlayers 3中特征的坐标

database - 在 Neo4J 数据库上使用 Jena 推理器

rest - 我可以通过 get/post 向 neo4j 浏览器发送密码查询吗?

neo4j - Neo.TransientError.General.OutOfMemoryError