OrientDB查询产品及其最后评论

时间:2016-02-23 10:41:09

标签: orientdb

我有两个顶点类:Product,Comment。每个产品都可以有很多评论。注释有两个属性:日期和消息。

{产品} - GT; {评论}

我需要编写一个查询来检索所有带有上一条评论消息的产品。 Product Message Date A the last comment 01/01/2016 B xxx 22/01/2011 ...

我无法找到有关此类查询的任何文档。

2 个答案:

答案 0 :(得分:1)

我创建了一个小型db测试

create class Product extends V
create property Product.name String

create class Comments extends V
create property Comments.message String
create property Comments.date DATE

create class Product_Comments extends E

insert into Product(name) values ("Product 1")   // 12:0
insert into Product(name) values ("Product 2")   // 12:1

insert into comments(message,date) values ("message 1","2016-01-01")  //13:0
insert into comments(message,date) values ("message 2","2016-02-01")  //13:1

insert into comments(message,date) values ("message 3","2016-01-15")  //13:2
insert into comments(message,date) values ("message 4","2016-02-14")  //13:3


create edge Product_Comments from 12:0 to 13:0
create edge Product_Comments from 12:0 to 13:1
create edge Product_Comments from 12:1 to 13:2
create edge Product_Comments from 12:1 to 13:3

enter image description here

您可以使用此查询

SELECT name, $checks[0].date as date , $checks[0].message as message FROM Product 
let $a = ( select expand(out("Product_Comments")) from $parent.$current),
$checks= ( select date, message from $a where date in ( select max(date) from $a))

enter image description here

希望它有所帮助。

答案 1 :(得分:0)

如果您有连接产品和评论的边缘,并且您始终按时间顺序插入,则可以执行以下操作:

SELECT Name, last(out()).Message, last(out()).Date FROM Product