Düğüm nesnesinin derin bir kopyasını oluşturmak ve neo4j veritabanında değil, sıradan bir kapta (liste gibi) saklamak mümkün mü? Yapmam gereken şey, veri tabanını oluşturduğum bir düğümün kopyasını çıkarmak, daha sonra kopyanın belirli özelliklerini değiştirmek ve geçici olarak saklamak. Ve sadece daha sonra veri tabanına birleştirin.py2neo: Düğümün Derin Kopyasını Yap ve Yerel Olarak Sakla
1
A
cevap
0
Py2neo Node
nesneler, düğümü uzaktaki (veritabanında) karşılık gelen düğümden ayıran bir unbind
yöntemine sahiptir. Yani, bazı Düğüm nesneleri getirmek onları unbind ve bunları bir listeye kaydedebilirsiniz:
import pickle
pickle.dump(node_list, open("nodes.p", "wb"))
node_list_from_pickle = pickle.load(open("nodes.p", "rb"))
node_list_from_pickle
---------------------
[<Node labels={'Person'} properties={'name': 'Jim'}>,
<Node labels={'Person'} properties={'name': 'Anna'}>,
<Node labels={'Person'} properties={'name': 'Sally'}>,
<Node labels={'Person'} properties={'name': 'Joe'}>,
<Node labels={'Person'} properties={'name': 'Bob'}>,
<Node labels={'Person'} properties={'name': 'Mike'}>,
<Node labels={'Person'} properties={'name': 'Billy'}>]
Düğüm nesneleri bir LabelSet (içerir:
node_list = []
for node in graph.find("Person"):
node.unbind()
node_list.append(node)
node_list
------------
[<Node labels={'Person'} properties={'name': 'Jim'}>,
<Node labels={'Person'} properties={'name': 'Anna'}>,
<Node labels={'Person'} properties={'name': 'Sally'}>,
<Node labels={'Person'} properties={'name': 'Joe'}>,
<Node labels={'Person'} properties={'name': 'Bob'}>,
<Node labels={'Person'} properties={'name': 'Mike'}>,
<Node labels={'Person'} properties={'name': 'Billy'}>]
Düğüm nesnesi ayrıca turşu serileştirme/deserialization desteklemek set
alt sınıfı ve PropertySet (dict
'un bir alt sınıfıdır) bu yüzden eğer bir derin yazı yapmak istiyorsanız, bu iki nesneyi bir Düğüm örneğindeki yakalamanız gerekir.