OrientDB如何检查2个节点之间的关系

OrientDB如何检查2个节点之间的关系,orientdb,Orientdb,我有一些“产品”类的顶点,它们可以被“用户”类“查看”或“排序”。。 我的问题是,我想编写SQL查询或匹配命令来获取特定用户“查看”的所有产品,但没有任何用户订购。。 如何检查MATCH命令中的“产品”和“用户”之间不存在“已订购”关系 例如: ProductA我想你可以使用这个查询 select from Product where in("viewed").@rid contains userRid and in("ordered").size()=0 希望有帮助。我想你可以用这个查询 s

我有一些“产品”类的顶点,它们可以被“用户”类“查看”或“排序”。。 我的问题是,我想编写SQL查询或匹配命令来获取特定用户“查看”的所有产品,但没有任何用户订购。。 如何检查MATCH命令中的“产品”和“用户”之间不存在“已订购”关系

例如:


ProductA我想你可以使用这个查询

select from Product where in("viewed").@rid contains userRid and in("ordered").size()=0

希望有帮助。

我想你可以用这个查询

select from Product where in("viewed").@rid contains userRid and in("ordered").size()=0
希望有帮助。

试试这个:

MATCH {CLASS:Product, AS:pdt, WHERE: (in().size() == 1 and inE().@class = "viewed" and in().name contains "UserA")} RETURN pdt.name
这是输出:

更新

希望能有帮助

关于

试试这个:

MATCH {CLASS:Product, AS:pdt, WHERE: (in().size() == 1 and inE().@class = "viewed" and in().name contains "UserA")} RETURN pdt.name
这是输出:

更新

希望能有帮助


问候

谢谢。但是,如果我在UserB和ProductC之间添加“viewed”关系,您的查询将是错误的。应该同时返回产品B和产品C。谢谢。但是,如果我在UserB和ProductC之间添加“viewed”关系,您的查询将是错误的。它应该返回ProductB和ProductC。