2016-05-23 2 views
4

Neo4jにコレクションとしてコレクションを含める方法はありますか?もしそうなら、これは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.

これは私にこのタイプの構造が良いアイデア、そして私はそこに理由があると仮定しています。

答えて

4

なぜ食事のためのノードを別にしたくないのですか?

プロパティは値の配列にすることができます。

あなただけ(マップとして作用する)あなたのノードに3つの追加のプロパティを持つことができます:あなたはまた、プロパティ名としてfood.*を使用することができます

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

+0

私はしたくないと私はそれは私も思ったんだけどgreat..butだと思う理由は、他の方法のISN」お勧めですか?一般的に、重要なペア値に関する有用なものの1つは入れ子機能です。 –

0
  1. いいえ、プロパティとしてネストされたコレクションは使用できません。

  2. 哲学は簡単です:分析ツールとしてグラフアルゴリズムを効果的に使用するためのオブジェクトとリレーションシップの最大分解。あなたの例を食べ物と一緒に使用する:

    • 誰も同じ食品を朝食で食べますか?
    • 同時に昼食は誰ですか?
    • カロリーミールをカウントする必要がある場合はどうなりますか?
    • 同じ日に同じ人物の調理方法はどう違うのですか?
    • 誰がこれらの製品を供給しますか?
    • いくつかのレシピで、これらの製品は含まれていますか?
    • 朝食のために人々がその日に食べた野菜とフルーツジュースは何ですか?

そして例示的なモデルの実例として:

enter image description here

関連する問題