When you generate a relational schema with the Schema Tool, the driver exposes native objects as unquoted, uppercase identifiers by default. Since native objects are case sensitive in MongoDB, the driver avoids naming conflicts by appending identifiers which have the same name but different cases with an underscore separator and integer (for example, _1). If one of the conflicting names contains only uppercase characters, that name will remain unaltered. For example, if the collections Test, TEST, and test exist in the native data, the driver will expose the collections as tables in the following manner:
Table 17. Name Conflict Resolution Example
Collection Name
Table Name
Test
TEST_1
TEST
TEST
test
TEST_2
Note: When you initially connect to your native data with the Schema Tool, a warning message will appear if the driver detects any naming conflicts. This message will not appear in subsequent connections unless a naming conflict has been introduced into the native data.
Alternatively, you can use UppercaseIdentifiers to retain the names of native objects in the relational view of your data. When UppercaseIdentifiers is set to false, the driver maps the names of native objects as quoted identifiers, maintaining the case of native object names in the relational view of native data. For details, see "Identifiers" and "ConfigOptions" in the driver documentation.
The remaining topics in this section discuss two specific naming conflict scenarios.