Neo4j动态类型转换

Neo4j动态类型转换,neo4j,Neo4j,我刚刚开始学习Neo4j,我刚刚偶然发现了一些问题 Neo4j似乎在使用强类型而不进行即时类型转换,即RETURN'17'=17导致false和RETURN'10'>5导致语法错误 我觉得NoSQL和无模式数据库实现如此严格的行为非常奇怪。即使是基于强类型模式的数据库,如MySQL和Postgresql,也允许在语句中进行类型转换。这是Neo4j背后的意识形态吗?如果是,为什么 在Neo4j 2.1中添加了类型转换函数,如负责转换的toInt和toFloat 在2.0.x中,您可以在另一个方向上

我刚刚开始学习Neo4j,我刚刚偶然发现了一些问题

Neo4j似乎在使用强类型而不进行即时类型转换,即
RETURN'17'=17
导致
false
RETURN'10'>5
导致语法错误

我觉得NoSQL和无模式数据库实现如此严格的行为非常奇怪。即使是基于强类型模式的数据库,如MySQL和Postgresql,也允许在语句中进行类型转换。这是Neo4j背后的意识形态吗?如果是,为什么


在Neo4j 2.1中添加了类型转换函数,如负责转换的
toInt
toFloat

在2.0.x中,您可以在另一个方向上使用
str(17)=str('17')


Neo4j本身对结构信息的要求不那么严格。但对价值观要求更严格。也就是说,您输入到属性中的值的返回方式与此完全相同,您必须自己将其转换为不同的类型。其中一些源于它的Java历史,并且已经为cypher放宽了限制。

谢谢你的回复,Michael!因此,如果无法控制添加到共享数据库的信息将采用适当的严格数据类型,我将不得不向所有查询添加大量的
toInt
toFloat
str
函数?围绕这个问题的最佳实践是什么?(谢谢)