OrientDB 查询产品及其最后评论
OrientDB Query Product with their last comment
我有两个顶点类:产品,评论。每个产品可以有很多评论。评论有两个属性:日期和消息。
{产品}-->{评论}
我需要编写一个查询来检索所有产品及其最后一条评论消息。
Product Message Date
A the last comment 01/01/2016
B xxx 22/01/2011
...
我找不到关于此类查询的任何文档。
如果您有连接产品和评论的边,并且始终按时间顺序插入,您可以这样做:
SELECT Name, last(out()).Message, last(out()).Date FROM Product
我创建了一个小型数据库测试
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
您可以使用这个查询
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))
希望对您有所帮助。
我有两个顶点类:产品,评论。每个产品可以有很多评论。评论有两个属性:日期和消息。
{产品}-->{评论}
我需要编写一个查询来检索所有产品及其最后一条评论消息。
Product Message Date
A the last comment 01/01/2016
B xxx 22/01/2011
...
我找不到关于此类查询的任何文档。
如果您有连接产品和评论的边,并且始终按时间顺序插入,您可以这样做:
SELECT Name, last(out()).Message, last(out()).Date FROM Product
我创建了一个小型数据库测试
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
您可以使用这个查询
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))
希望对您有所帮助。