]
Ramesh Reddy resolved TEIID-3040.
---------------------------------
Fix Version/s: 8.7.1
Resolution: Done
Modified translator for necessary changes. The JOIN capabilities can still be used as
before. There was no reason to keep extra metadata in terms of using DBRef and added
complexity to documents when Teiid already has access to the schema.
MongoDB: Remove the IDREF fields for the FK fields
--------------------------------------------------
Key: TEIID-3040
URL:
https://issues.jboss.org/browse/TEIID-3040
Project: Teiid
Issue Type: Enhancement
Security Level: Public(Everyone can see)
Reporter: Ramesh Reddy
Assignee: Ramesh Reddy
Fix For: 8.7.1, 8.9
TEIID-2958 has been working towards removing the IDREF fields from embedded documents. I
see no reason to represent FK in the parent table with IDREF either. This will make the
document model representation simple and aligns with how a typical developer would
design.
If the schema looks like
{code}
CREATE FOREIGN TABLE Customer (
id integer PRIMARY KEY,
firstName string,
lastName string,
email_addr string,
FORIEGN KEY (email_addr) REFERENCES Email(address)
);
CREATE FOREIGN TABLE Email (
address string PRIMARY KEY,
provider string
) OPTIONS ("teiid_mongo:MERGE" 'Customer');
{code}
Currently Teiid writes the document as
{code}
Customer
{
"_id" : 1,
"firstName" : "Ramesh",
"lastName" : "Reddy",
"email_addr" : DBRef("EMail", "abc(a)abc.com"),
"EMail" : {
"_id": "abc(a)abc.com",
"provider" : "Comcast"
}
}
{code}
change to:
{code}
customer
{
"_id" : 1,
"firstName" : "Ramesh",
"lastName" : "Reddy",
"email_addr" : "abc(a)abc.com",
"EMail" : {
"provider" : "Comcast"
}
}
{code}