如果属性有更多信息而不是原始类型,如何映射?
示例:
(Label :{ measured_depth: 'int'})
如果measured_depth
分配了单位系统(英语)和单位代码(ft),该怎么办?
这是一个可行的案例吗?
答案 0 :(得分:0)
属性还可以包含更复杂的数据结构,称为集合(类似于python列表),但不包含映射(类似于python字典)。对于您的用例,您可能需要创建两个不同的属性。例如,如果您有一个以英寸或厘米为单位测量的属性的节点,则可以将数据存储为如下所示的映射。
CREATE (n:SomeLabel {depth_val: 123, depth_unit: "cm", name: "Something"})
虽然当然,你可能想要参数化。您还应该了解+=
运算符,它允许您将映射的所有属性分配到节点上。我在下面提供了一个示例作为参数。
如果在浏览器中,您可以设置如下参数:
:param measurement: {name:"Something", depth_val: 123, depth_unit: "cm"}
然后执行以下操作。这相当于第一个查询。
CREATE (n:SomeLabel) SET n += $measurement
另一种方法是将您的值存储为一个集合,其中第0项是您的值,下一项表示单位,但是,由于集合必须存储相同类型的值,您很可能必须设计一些代码使用整数,这是非常理想的。如果具有太多属性可能会导致问题(例如,如果每个项目有多个度量),则可以根据需要将每个观察或度量存储为新节点。