[teiid-issues] [JBoss JIRA] (TEIID-5873) OData mapping issue with mongodb

Steven Hawkins (Jira) issues at jboss.org
Mon Jan 6 09:28:27 EST 2020


     [ https://issues.redhat.com/browse/TEIID-5873?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Steven Hawkins updated TEIID-5873:
----------------------------------
    Component/s: Misc. Connectors
        Summary:  OData mapping issue with mongodb  (was:  Implement ComplexTypes support in OData EntityType)


This will mostly need addressed by alternative mapping logic with mongodb.  

More than likely this means determining the primary key of the nested array.  In this example it would appear to be rowId.  The workaround is to update the vdb to manually add a primary key / foreign key for the inferred table.

Further out options are:

* Provide an option for json pass-through - I don't think this is really supported by olingo.
* Provide an option to map rows as an array instead of via a relationship - we'd still need to convey the schema of the array component type (since we don't have structs) and update the olingo logic to handle this.


>  OData mapping issue with mongodb
> ---------------------------------
>
>                 Key: TEIID-5873
>                 URL: https://issues.redhat.com/browse/TEIID-5873
>             Project: Teiid
>          Issue Type: Enhancement
>          Components: Misc. Connectors, OData
>    Affects Versions: 13.0.1
>            Reporter: Chee Kin Lim
>            Assignee: Steven Hawkins
>            Priority: Major
>             Fix For: 13.1
>
>
> Given the following document in MongoDB matrix_variable collection:
> {
>     "_id" : ObjectId("5b2367c9c9e77c0007ca0111"),
>     "createdOn" : ISODate("2018-06-15T07:16:25.459Z"),
>     "modifiedOn" : ISODate("2018-07-02T02:04:16.661Z"),
>     "variableId" : "183cf101d2334ac09bd0db9aee96081f",
>     "name" : "lfzq_test",
>     "description" : "",
>     "lastModifiedUserEmail" : "admin1 at abc.com",
>     "headerRow" : {
>         "rowId" : "0b002942a5b4424f98fcc270af0290c3",
>         "values" : [ 
>             "name", 
>             "value"
>         ],
>         "isEncrypted" : [ 
>             false, 
>             true
>         ]
>     },
>     "rows" : [ 
>         {
>             "rowId" : "940467f9bb724d1688086baeec05049b",
>             "values" : [ 
>                 "lfzq123q", 
>                 "751c634ca5e24102a00800b386955a5c"
>             ]
>         }
>     ],
>     "deleted" : false
> }
> The "headerRow" property is exposed as separate entity type in OData schema, but not "rows" property.
> I found the following entity types with odata/$metadata:
> <EntityType Name="headerRow">...</EntityType>
> <EntityType Name="matrix_variable">...</EntityType>
> Github repo to showcase the issue:
> https://github.com/limcheekin/teiid-spring-boot-mongodb-odata
> Related StackOverflow post:
> https://stackoverflow.com/a/59385181/303211



--
This message was sent by Atlassian Jira
(v7.13.8#713008)


More information about the teiid-issues mailing list