集合可以是 Neo4j 中的属性吗?

Mon*_*eck 4 neo4j cypher

有没有办法在 Neo4j 中将集合作为属性包含在内?如果是这样,这是否会被视为符合 Neo4j 基本哲学的模式?

我对这样的节点感兴趣的根本原因是,我可以对一系列动作的想法进行编码。在这种情况下,发生了早餐、午餐和晚餐。我当然不希望每顿饭有 3 个单独的节点。拥有 3 段用餐关系也是没有意义的,因为它们不会与任何人建立联系。

我正在尝试开发这样的东西:

CREATE (:Node {name: 'John Doe', food: [{breakfast: ['cereal', 'juice']}, {lunch: ['sandwich', 'milk']}, {dinner: ['M&Ms']}])

我对这种性质的所有尝试都导致了这些错误:

Property values can only be of primitive types or arrays thereof
或者
Collections containing mixed types can not be stored in properties.

这让我相信这种类型的结构不是一个好主意,我假设有一个很好的理由。

Mic*_*ger 5

你为什么不想要单独的节点来吃饭?

属性可以是值数组。

您的节点上可以只有 3 个附加属性(充当地图):

CREATE (:Person {name: 'John Doe', 
          breakfast: ['cereal', 'juice'], 
          lunch: ['sandwich', 'milk'], 
          dinner: ['M&Ms']})
Run Code Online (Sandbox Code Playgroud)

您也可以food.*用作属性名称。