中国語学習×グラフデータベース(9) - 属性変更

意外に続いている今シリーズ。ネタ切れも間近だったりするけど、とりあえずまとめておく。

属性の変更

例えば、単語1つを例に挙げる。

w = list(graph.find("Word", "keyword", "挨"))
print(w)
[<Node graph='http://localhost:7474/db/data/' ref='node/1110' labels={'Word'} properties={'keyword': '挨', 'pinyin': 'ai1', 'meaning': '', 'pinyinf': 'āi'}>]

「挨」という単語を見てみると、意味(meaning)が空っぽであることに気づく。

でもその前に、少しPython特有で気にするところがあるので少し。graph.find()で拾った場合の戻りがgeneratorオブジェクトになっており、1回アクセスすると消えてしまう。これは、データが大量になる可能性がある場合には正しいアプローチだけど、今回の場合は該当するものが、たかだか2個程度(多読字の場合)と分かっているので、そのままListに放り込んでいる。

そこで意味を追加してみる。

w[0]['meaning'] = '近寄る,寄り添う,くっつく'
graph.push(w[0])

辞書と同じような感じで意味を追加して、その後にpush()をしてやるとDB側も更新される。

w = list(graph.find("Word", "keyword", "挨"))
print(w[0])
(n1679:Word {keyword:"挨",meaning:"近寄る,寄り添う,くっつく",pinyin:"ai1",pinyinf:"āi"})

念のため、結果を確認してみる。きちんと更新されている事が分かる。

今日はちょっと短いが、次のが長くなりそうなのでこのあたりで。

グラフ型データベース入門 - Neo4jを使う

グラフ型データベース入門 - Neo4jを使う

グラフデータベース ―Neo4jによるグラフデータモデルとグラフデータベース入門

グラフデータベース ―Neo4jによるグラフデータモデルとグラフデータベース入門

A Programmatic Introduction to Neo4j

A Programmatic Introduction to Neo4j