我有一个现有的neo4j数据库,有这样的关系......
User-[:Owner]->Item
Run Code Online (Sandbox Code Playgroud)
User包含通常的属性; name,email等
Owner关系具有created_on属性
Item有一堆有关该项目的属性; title,description等等.
我想添加一个geo-location属性Item.这将是一个latitude和longitude其中用户创建的项目.
JSON api正在向我们的客户提供此数据.API将合并一些数据,因此Itemapi中的对象将具有嵌套User对象作为其属性...
"item": {
"title":"my item",
"user":{
"name":"smith"
}
}
Run Code Online (Sandbox Code Playgroud)
我最初认为这个位置会跟着...
"item": {
"title":"my item",
"user":{
"name":"smith"
},
"geo_position":{
"latitude":"10.123456789",
"longitude":"10.123456789"
}
}
Run Code Online (Sandbox Code Playgroud)
由于我们无法在Neo中嵌套数据,因此想知道如何存储这些数据......
geo_position属性下的纬度和经度数据Item? Owner.latitude? Location `用户- [:拥有] - >螨< - [:created_at] -Location?Item没有嵌套,item.latitude? 1 - 我假设我们无法查询.
2 - 感觉不是正确的地方.
3 - 极不可能的2 Items将具有相同的位置,因为lat long非常精确,所以几乎No Items会共享这个节点,所以它真的是一个节点吗?
那么4真的是这样做的方式,而不是嵌套它们吗?
米
你自己的分析基本上是正确的.我会选择4号.
这里更多的是为什么2号不是一个好主意.逻辑上:项目的位置属于该项目的节点,而不是与该项目的特定关系.实际上:如果对象更改了所有权,则不必将其位置复制到新关系,并且查询项目的位置应该像获取其节点一样快速和简单.
| 归档时间: |
|
| 查看次数: |
2041 次 |
| 最近记录: |