Solved

What happens to the container or indexes or during query for a field that has @reversedirectrelation

  • 24 May 2024
  • 6 replies
  • 54 views

What happens to the container or indexes or during query for a field that has @reversedirectrelation.

Kindly point to the documentation that explains what actually happens internally when a field has @reversedirectrelation.

icon

Best answer by Uzair Wali 2 July 2024, 17:52

View original

6 replies

Userlevel 4
Badge +2

Hi @Shreyas Mehta,

Please add a comment if you have further questions after referring to this documentation.

Userlevel 4
Badge +2

Hi @Shreyas Mehta,

Did the above information help you?  

Userlevel 4
Badge +2

Hi @Shreyas Mehta,

As of this moment, I am officially closing the discussion on this particular topic. You are more than welcome to initiate a new post should you have any further questions or require additional information.

@Dilini Fernando - The documentation doesn’t answer my question. Request you to get the answer from the product team.

Userlevel 2

Hi @Shreyas Mehta , a reverseDirectRelation directive specifies that a property is another type of connection definition i.e. similar to an edge connection definition. Meaning that it does not point to a property in the corresponding view's container itself. Instead it references a property in another View/Container that is expected to point towards the parent View of the reverseDirectRelation property.

ViewA {
propA: String # maps to ContainerA/propA
propB: ViewB # DirectRelation, maps to ContainerA/propB
propC: [ViewB] # Connection definition for edges, no container property underneath
}

ViewB {
propD: String # maps to ContainerB/propD
propE: [ViewA] @reverseDirectRelation(throughProperty='propB') # Connection definition for a reverse direct relation. Basically defines a way to automatically query ViewA nodes whose 'propB' property point towards ViewB nodes.
}

Since these are not physical properties (on Containers), indexes do not apply here. Instead, to gain performance, indexing should be applied to the property that IS the direct relation itself i.e. propB above.

Hope that clarifies it somewhat.

Thanks Uzair for the explanation.

Reply