Neo4j合并约束违反非约束属性值
我遇到的问题与此问题类似,但看起来没有违反我的约束(Neo4j合并约束违反非约束属性值,neo4j,cypher,Neo4j,Cypher,我遇到的问题与此问题类似,但看起来没有违反我的约束(id)。相反,我得到了一个关于另一个属性的错误,它根本不应该是一个约束。我正在使用apoc连接到mongo db,并已验证mongo db是否正常。这是我的疑问: CALL apoc.mongodb.get('mongodb://[HOSTNAME]:[PORT],'dbname','tablename',null,true) YIELD value as elt MERGE (e:TableElements {id : elt.pid}) O
id
)。相反,我得到了一个关于另一个属性的错误,它根本不应该是一个约束。我正在使用apoc连接到mongo db,并已验证mongo db是否正常。这是我的疑问:
CALL apoc.mongodb.get('mongodb://[HOSTNAME]:[PORT],'dbname','tablename',null,true) YIELD value as elt
MERGE (e:TableElements {id : elt.pid})
ON MATCH SET
e.symbol = elt.sym,
e.electron_cfg = elt.el
ON CREATE SET
e.atomic_number = elt.num,
e.symbol = elt.sym,
e.electron_cfg = elt.el,
e.atomic_weight = elt.weight,
e.name = elt.name;
我得到一个错误:
Node(1) already exists with label `TableElements` and property `name` = 'HYDROGEN'
撇开重复元素的所有问题不谈,我怎么可能在一个未标识为约束的属性上遇到约束冲突?我对MERGE的理解是,它只在MERGE子句中指定的属性上进行合并,我认为它只是由属性
id
与传入的elt.pid
匹配的所有节点组成,并且我已经验证了没有任何重复的elt.pid
s,所以我不确定会发生什么。你确定db.indexes()
不会在TableElements(name)上返回唯一的约束吗?@ChristopherWillemsen这是mongo查询吗?我对这两个都很陌生,但它似乎不是密码查询,我不确定mongodb上的约束会如何影响Neo中的设置属性你确定db.indexes()
不会在:TableElements(name)上返回唯一约束吗?@ChristopherWillemsen这是mongo查询吗?我对这两个都很陌生,但它似乎不是一个密码查询,我不确定mongodb上的约束将如何影响neo中的属性设置