Take a look at this post
This
{
person(func: uid("0x59179e7")) {
~hasCreator @filter(has(replyOf)) {
uid
content
imageFile
creationDate
replyOf{
uid
}
}
}
}
You can’t. That should be done at the application level. You could potentially do using Math feature and some variables. But it works for INT only.
I’m not sure about this cypher feature. Is it a Recurse?
I tried to create some pseudo-DQL query. Based on that cypher one you’ve shared.
{
q(func: type(Person)) @filter(eq(id, "person_933")) {
<~HAS_CREATOR> @filter(type(Comment)) (orderdesc: creationDate) { #don't need this filter
id : commentId
content : messageContent
creationDate : messageCreationDate
REPLY_OF @filter(type(Post)) {
id : originalPostId
HAS_CREATOR {
id : originalPostAuthorId
firstName
lastName
}
}
}
}
}
{
var(func: type(Person)) @filter(eq(id, "person_933")) {
<~HAS_CREATOR> @filter(type(Comment)) (orderdesc: creationDate) { #don't need this filter
id : commentId
content : messageContent
creationDate : messageCreationDate
REPLY_OF @filter(type(Post)) { RP as uid }
}
}
q(func: uid(RP), first: 10) @recurse(depth: 3){
id : originalPostId
HAS_CREATOR {
id : originalPostAuthorId
firstName
lastName
}
}
}
You have to pay attention that they are both totally different approaches in language and storing methods. You can’t replicate 100% the same behavior on DQL from Cypher.
I don’t understand this concept. In Dgraph we have the depth of hops/traversing nodes.