{"id":33995,"date":"2024-07-16T16:38:53","date_gmt":"2024-07-16T14:38:53","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=33995"},"modified":"2025-01-24T10:39:36","modified_gmt":"2025-01-24T09:39:36","slug":"integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/","title":{"rendered":"Integrating MongoDB Documents in Oracle Database: A Modern Approach to Hybrid Data Management"},"content":{"rendered":"\n<p>by Alexandre Nestor<\/p>\n\n\n\n<p>In today\u2019s data-driven world, organizations often leverage a variety of databases to meet their diverse data storage and processing needs. MongoDB and Oracle Database are two prominent names in the database landscape, each excelling in different areas. MongoDB is renowned for its flexibility and scalability in handling unstructured data, while Oracle Database is a powerhouse for structured data with robust transactional capabilities.<\/p>\n\n\n\n<p>Integrating MongoDB documents within an Oracle database allows organizations to harness the strengths of both systems. This hybrid approach enables seamless data management, providing the flexibility of NoSQL with the reliability and performance of a traditional RDBMS. In this blog, we will explore eth technical steps involved in integrating MongoDB documents into an Oracle database.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-why-integrate-mongodb-documents-in-oracle-database\"><strong>Why Integrate MongoDB Documents in Oracle Database<\/strong> ?<\/h2>\n\n\n\n<p>In short, is for getting the best of two worlds.  <\/p>\n\n\n\n<p>1. <strong>Unified Data View<\/strong>: Combining MongoDB\u2019s unstructured data with Oracle\u2019s structured data creates a unified view, making it easier to perform comprehensive data analysis and reporting.<\/p>\n\n\n\n<p>2. <strong>Enhanced Flexibility<\/strong>: MongoDB\u2019s schema-less architecture allows for rapid development and iteration, while Oracle\u2019s structured schema ensures data integrity and consistency.<\/p>\n\n\n\n<p>3. <strong>Scalability and Performance<\/strong>: MongoDB\u2019s horizontal scalability complements Oracle\u2019s vertical scaling capabilities, providing a balanced approach to handling large volumes of data.<\/p>\n\n\n\n<p>4. <strong>Cost Efficiency<\/strong>: By leveraging both databases, organizations can optimize costs by storing data where it is most efficient based on its nature and usage patterns.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-technical-steps-to-connect-the-two-worlds\">Technical steps to connect the two worlds. <\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-the-vm-preparation\">The VM preparation <\/h3>\n\n\n\n<p>I made some changes to the configuration to make the database changes persistent. <\/p>\n\n\n\n<p>For this example I use an Oracle 23 AI docker container.  How to use it is explained here: <a href=\"https:\/\/www.oracle.com\/my\/database\/free\/get-started\/\">https:\/\/www.oracle.com\/my\/database\/free\/get-started\/<\/a><\/p>\n\n\n\n<p>The VM used is an Oracle Linux Server VM deployed on OCI:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n&#x5B;opc@db23ai ~]$ cat \/etc\/os-release\nNAME=&quot;Oracle Linux Server&quot;\nVERSION=&quot;9.4&quot;\n<\/pre><\/div>\n\n\n<p>The docker part installation is described here: <a href=\"https:\/\/docs.docker.com\/engine\/install\/rhel\/\">https:\/\/docs.docker.com\/engine\/install\/rhel\/<\/a><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n&#x5B;root@db23ai ~]# yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin\n\n<\/pre><\/div>\n\n\n<p>Next,I create the oracle user and groups with the same ID&#8217;s as used in the container: <\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n&#x5B;root@db23ai ~]# groupadd -g 54321 oinstall\n&#x5B;root@db23ai ~]# groupadd -g 54322 dba\n&#x5B;root@db23ai ~]# groupadd -g 54323 oper\n&#x5B;root@db23ai ~]# useradd -g oinstall -G dba,oper,docker --uid 54321 -m oracle\n<\/pre><\/div>\n\n\n<p>Finally I install the sqlplus client and mongo shell:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n&#x5B;root@db23ai u02]# dnf install oracle-instantclient-sqlplus.x86_64\n&#x5B;root@db23ai u02]# wget https:\/\/downloads.mongodb.com\/compass\/mongodb-mongosh-2.2.12.x86_64.rpm\n&#x5B;root@db23ai u02]# rpm -ivh mongodb-mongosh-2.2.12.x86_64.rpm\nwarning: mongodb-mongosh-2.2.12.x86_64.rpm: Header V4 RSA\/SHA256 Signature, key ID d361cb16: NOKEY\nVerifying...                          ################################# &#x5B;100%]\nPreparing...                          ################################# &#x5B;100%]\nUpdating \/ installing...\n   1:mongodb-mongosh-2.2.12-1.el8     ################################# &#x5B;100%]\n...\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-the-oracle-23-ai-container\">The Oracle 23 AI container <\/h3>\n\n\n\n<p>The <code>port 1700 <\/code>is for database <code>sqlplus<\/code> connections and the <code>port 27017<\/code> is for <code>mongosh<\/code> connections. I exported some volumes first to make the Oracle database persistent, and to have a place to install ORDS (<a href=\"https:\/\/www.oracle.com\/ch-de\/database\/technologies\/appdev\/rest.html\">https:\/\/www.oracle.com\/ch-de\/database\/technologies\/appdev\/rest.html<\/a>)<\/p>\n\n\n\n<p>Get the container: <\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n&#x5B;root@db23ai ~]# sudo su - oracle\n&#x5B;oracle@db23ai ~]$ docker pull container-registry.oracle.com\/database\/free:latest\n<\/pre><\/div>\n\n\n<p>Run the container:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n&#x5B;oracle@db23ai ~]$ mkdir \/u02\/data\/DB\n&#x5B;oracle@db23ai ~]$ mkdir \/u02\/reco\/DB\n&#x5B;oracle@db23ai ~]$ mkdir \/u02\/ords\n\n&#x5B;oracle@db23ai ~]$ docker run  -it --name 23ai -p 1700:1521 -p 27017:27017 \\\n-v \/u02\/data\/DB:\/opt\/oracle\/oradata \\\n-v \/u02\/reco\/DB:\/opt\/oracle\/reco \\\n-v \/u02\/oracle\/ords:\/opt\/oracle\/ords \\\n-e ENABLE_ARCHIVELOG=true  \\\n-e ORACLE_PWD=&quot;Hello-World-123&quot; \\\ncontainer-registry.oracle.com\/database\/free\n...\n\n#\u00a0Once the traces shows that database is running we can start it as daemon (-d option)\n\n#\u00a0Test the connection to the PDB \n&#x5B;oracle@db23ai ~]$ sqlplus system\/&quot;Hello-World-123&quot;@localhost:1700\/freepdb1\n\nSQL*Plus: Release 23.0.0.0.0 - Production on Thu Jul 11 12:09:40 2024\nVersion 23.4.0.24.05\n\nCopyright (c) 1982, 2024, Oracle.  All rights reserved.\n\nLast Successful login time: Thu Jul 11 2024 11:59:21 +00:00\n\nConnected to:\nOracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free\nVersion 23.4.0.24.05\nSQL&gt; show con_id\n\nCON_ID\n------------------------------\n3\n\n<\/pre><\/div>\n\n\n<p>Create the <code>scott<\/code> schema: <\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\nSQL&gt; drop user scott cascade;\n\nSQL&gt; create user SCOTT identified by tiger default tablespace users;\n\nSQL&gt; grant connect, create session, create table, create view, create sequence, create procedure, create job, to scott; \n\nSQL&gt; alter user scott quota unlimited on users;\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-install-ords-to-give-access-to-mongo-shell-to-the-database\">Install ORDS to give access to mongo shell to the database<\/h3>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-\"><\/h3>\n\n\n\n<p>Download ORDS from <a href=\"https:\/\/www.oracle.com\/database\/sqldeveloper\/technologies\/db-actions\/download\/\">https:\/\/www.oracle.com\/database\/sqldeveloper\/technologies\/db-actions\/download\/<\/a><\/p>\n\n\n\n<p>Download it to <code>\/u02\/oracle\/ords\/ords_pkg<\/code> wich is the <code>\/u02\/oracle\/ords<\/code> directory in the docker container.<\/p>\n\n\n\n<p>Connect as <code>oracle<\/code> user to the container and install ORDS:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n# connect to the container\n&#x5B;oracle@db23ai ~]$ docker exec -u 54321 -it 23ai \/bin\/bash\n\nbash-4.4$ id\nuid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba)\n\nbash-4.4$ cd \/opt\/oracle\/ords\/ords_pkg\nbash-4.4$ ls\nords-24.2.2.187.1943.zip\n\nbash-4.4$ unzip ords-24.2.2.187.1943.zip\n...\n\nbash-4.4$ export JAVA_HOME=\/opt\/oracle\/product\/23ai\/dbhomeFree\/jdk\nbash-4.4$ export PATH=$PATH:\/opt\/oracle\/product\/23ai\/dbhomeFree\/jdk\/bin\n\nbash-4.4$ \/opt\/oracle\/ords\/ords_pkg\/bin\/ords --config \/opt\/oracle\/ords install\n\nORDS: Release 24.2 Production on Thu Jul 11 12:20:40 2024\n\nCopyright (c) 2010, 2024, Oracle.\n\nConfiguration:\n  \/opt\/oracle\/ords\n\nThe configuration folder \/opt\/oracle\/ords does not contain any configuration files.\n\nOracle REST Data Services - Interactive Install\n\n  Enter a number to select the TNS net service name to use from \/opt\/oracle\/product\/23ai\/dbhomeFree\/network\/admin\/tnsnames.ora or specify the database connection\n    &#x5B;1] EXTPROC_CONNECTION_DATA SID=PLSExtProc\n    &#x5B;2] FREE         SERVICE_NAME=FREE\n    &#x5B;3] FREEPDB1     SERVICE_NAME=FREEPDB1\n    &#x5B;S] Specify the database connection\n  Choose &#x5B;1]: 3 &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; MY ENTRY &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;\n  Provide database user name with administrator privileges.\n    Enter the administrator username: sys. &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; MY ENTRY &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;\n  Enter the database password for SYS AS SYSDBA:  Hello-World-123 &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; MY ENTRY &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;\n\nRetrieving information.\nORDS is not installed in the database. ORDS installation is required.\n\n  Enter a number to update the value or select option A to Accept and Continue\n    &#x5B;1] Connection Type: TNS\n    &#x5B;2] TNS Connection: TNS_NAME=FREEPDB1 TNS_FOLDER=\/opt\/oracle\/product\/23ai\/dbhomeFree\/network\/admin\n           Administrator User: SYS AS SYSDBA\n    &#x5B;3] Database password for ORDS runtime user (ORDS_PUBLIC_USER): &amp;lt;generate&amp;gt;\n    &#x5B;4] ORDS runtime user and schema tablespaces:  Default: SYSAUX Temporary TEMP\n    &#x5B;5] Additional Feature: Database Actions\n    &#x5B;6] Configure and start ORDS in Standalone Mode: Yes\n    &#x5B;7]    Protocol: HTTP\n    &#x5B;8]       HTTP Port: 8080\n    &#x5B;A] Accept and Continue - Create configuration and Install ORDS in the database\n    &#x5B;Q] Quit - Do not proceed. No changes\n  Choose &#x5B;A]:   &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; MY ENTRY &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;\n  .....\n2024-07-11T12:23:05.339Z INFO        Oracle REST Data Services initialized\nOracle REST Data Services version : 24.2.2.r1871943\nOracle REST Data Services server info: jetty\/10.0.21\nOracle REST Data Services java info: Java HotSpot(TM) 64-Bit Server VM 11.0.23+7-LTS-222\n\n&amp;lt;&amp;lt;&amp;lt;&amp;lt; ORDS is running in foreground. Press ^C to stop it once installed \n^C\n\n\nbash-4.4$\n<\/pre><\/div>\n\n\n<p>Once installed stop the <code>ords<\/code> server to configure it for <code>mongodb<\/code>:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n# in the container as oracl user\nbash-4.4$ \/opt\/oracle\/ords\/ords_pkg\/bin\/ords --config \/opt\/oracle\/ords config set mongo.enabled true\n\nORDS: Release 24.2 Production on Thu Jul 11 12:25:09 2024\n\nCopyright (c) 2010, 2024, Oracle.\n\nConfiguration:\n  \/opt\/oracle\/ords\n\nThe global setting named: mongo.enabled was set to: true\n\n# start the ords server \nbash-4.4$ \/opt\/oracle\/ords\/ords_pkg\/bin\/ords --config \/opt\/oracle\/ords serve\n\nORDS: Release 24.2 Production on Thu Jul 11 12:25:51 2024\n\nCopyright (c) 2010, 2024, Oracle.\n\nConfiguration:\n  \/opt\/oracle\/ords\n\n2024-07-11T12:25:53.083Z INFO        HTTP and HTTP\/2 cleartext listening on host: 0.0.0.0 port: 8080\n....\n2024-07-11T12:25:53.170Z INFO        The Oracle API for MongoDB connection string is:\n         mongodb:\/\/&#x5B;{user}:{password}@]localhost:27017\/{user}?authMechanism=PLAIN&amp;authSource=$external&amp;ssl=true&amp;retryWrites=false&amp;loadBalanced=true\n2024-07-11T12:25:58.362Z INFO        Configuration properties for: |default|lo|\nawt.toolkit=sun.awt.X11.XToolkit\ndb.tnsAliasName=FREEPDB1\n...\n<\/pre><\/div>\n\n\n<p>If the configuration is correct the mongo shell URI is printed: <code>2024-07-11T12:25:53.170Z INFO The Oracle API for MongoDB connection string is:<br>mongodb:\/\/[{user}:{password}@]localhost:27017\/{user}?<\/code><\/p>\n\n\n\n<p>Connect as <code>scott<\/code> to the PDB and enable the schema for ORDS usage: <\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\noracle@db23ai ~]$ sqlplus scott\/tiger@localhost:1700\/freepdb1\n\n-- Enable SODA_APP role to work with JSON collections.\nSQL&gt; grant soda_app to scott;\n\nSQL&gt; exec ORDS.ENABLE_SCHEMA;\n\nPL\/SQL procedure successfully completed.\n<\/pre><\/div>\n\n\n<p>Now connect to Oracle database using  <code>mongosh<\/code>:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n&#x5B;oracle@db23ai ~]$ export URI=&#039;mongodb:\/\/scott:tiger@localhost:27017\/freepdb1?authMechanism=PLAIN&amp;authSource=$external&amp;tls=true&amp;retryWrites=false&amp;loadBalanced=true&#039;\n\n&#x5B;oracle@db23ai ~]$ mongosh  --tlsAllowInvalidCertificates $URI\nCurrent Mongosh Log ID:\t668fd0b81156f2c04b482f8a\nConnecting to:\t\tmongodb:\/\/&lt;credentials&gt;@localhost:27017\/freepdb1?authMechanism=PLAIN&amp;authSource=%24external&amp;tls=true&amp;retryWrites=false&amp;loadBalanced=true&amp;serverSelectionTimeoutMS=2000&amp;tlsAllowInvalidCertificates=true&amp;appName=mongosh+2.2.12\nUsing MongoDB:\t\t4.2.14\nUsing Mongosh:\t\t2.2.12\n\nFor mongosh info see: https:\/\/docs.mongodb.com\/mongodb-shell\/\n\n\nTo help improve our products, anonymous usage data is collected and sent to MongoDB periodically (https:\/\/www.mongodb.com\/legal\/privacy-policy).\nYou can opt-out by running the disableTelemetry() command.\n\nfreepdb1&gt; \n<\/pre><\/div>\n\n\n<p>Let&#8217;s create a collection:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\nfreepdb1&gt; use scott\n\nscott&gt; db.createCollection(&#039;emp_mdb&#039;);\n\nscott&gt; db.emp_mdb.insertOne({&quot;name&quot;:&quot;Miller&quot;,&quot;job&quot;: &quot;Programmer&quot;,&quot;salary&quot;: 70000});\n{\n  acknowledged: true,\n  insertedId: ObjectId(&#039;668fd349ec28de3a61482f8d&#039;)\n}\n\nscott&gt; db.emp_mdb.find({&quot;name&quot;:&quot;Miller&quot;});\n&#x5B;\n  {\n    _id: ObjectId(&#039;668fd349ec28de3a61482f8d&#039;),\n    name: &#039;Miller&#039;,\n    job: &#039;Programmer&#039;,\n    salary: 70000\n  }\n]\n\n# remark the table name in lowercase \nscott&gt; show collections\nemp_mdb\n<\/pre><\/div>\n\n\n<p>Let&#8217;s check the collection table from Oracle <code>sqlplus<\/code> point of view: <\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\n# connect to the PDB \n&#x5B;oracle@db23ai ~]$ sqlplus scott\/tiger@localhost:1700\/freepdb1\n\nSQL&gt; \n-- describe the MongoDB collection stored as a table \nSQL&gt; desc emp_mdb;\n Name\t\t\t\t\t   Null?    Type\n ----------------------------------------- -------- ----------------------------\n DATA\t\t\t\t\t\t    JSON\n\n-- select the collection \nSQL&gt; select * from emp_mdb;\n\nDATA\n--------------------------------------------------------------------------------\n{&quot;_id&quot;:&quot;668fd349ec28de3a61482f8d&quot;,&quot;name&quot;:&quot;Miller&quot;,&quot;job&quot;:&quot;Programmer&quot;,&quot;salary&quot;:70\n\n\n-- check the tables from scott schema (the collection is in lowercase ;) ) \nSQL&gt; select table_name from user_tables;\n\nTABLE_NAME\n--------------------------------------------------------------------------------\nDEPT\nEMP\nBONUS\nSALGRADE\nemp_mdb\n\n\n-- print JSON fields a human readable \nSQL&gt; select json_serialize(dbms_json_schema.describe(object_name=&gt;&#039;emp_mdb&#039;, owner_name  =&gt; &#039;SCOTT&#039;) pretty) as json_schema;\n\nJSON_SCHEMA\n--------------------------------------------------------------------------------\n{\n  &quot;title&quot; : &quot;emp_mdb&quot;,\n  &quot;dbObject&quot; : &quot;SCOTT.emp_mdb&quot;,\n  &quot;type&quot; : &quot;object&quot;,\n  &quot;dbObjectType&quot; : &quot;table&quot;,\n  &quot;properties&quot; :\n  {\n    &quot;DATA&quot; :\n    {\n    }\n  },\n  &quot;dbPrimaryKey&quot; :\n  &#x5B;\n    &quot;RESID&quot;\n  ]\n}\n\n--  print them more pretty \nSQL&gt; select json_serialize((e.data) pretty) from emp_mdb e;\n\nJSON_SERIALIZE((E.DATA)PRETTY)\n--------------------------------------------------------------------------------\n{\n  &quot;_id&quot; : &quot;668fd349ec28de3a61482f8d&quot;,\n  &quot;name&quot; : &quot;Miller&quot;,\n  &quot;job&quot; : &quot;Programmer&quot;,\n  &quot;salary&quot; : 70000\n}\n\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-conclusion\">Conclusion <\/h2>\n\n\n\n<p>Integrating MongoDB documents into an Oracle database enables organizations to take advantage of the unique strengths of both databases. This hybrid approach supports flexible, scalable, and robust data management, catering to a wide range of business needs. By following the steps outlined in this blog, you can create a seamless integration that leverages the best of both worlds.<\/p>\n\n\n\n<p>Embrace the hybrid model and unlock new potentials in your data architecture.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In today\u2019s data-driven world, organizations often leverage a variety of databases to meet their diverse data storage and processing needs. MongoDB and Oracle Database are two prominent names in the database landscape, each excelling in different areas. MongoDB is renowned for its flexibility and scalability in handling unstructured data, while Oracle Database is a powerhouse for structured data with robust transactional capabilities.<\/p>\n","protected":false},"author":27,"featured_media":34011,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[59],"tags":[979,1090,2961,3394,3154],"type_dbi":[3407,2728],"class_list":["post-33995","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oracle","tag-api","tag-javascript","tag-mongodb","tag-oracle-23ai","tag-oralce","type-mongodb","type-oracle"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Integrating MongoDB Documents in Oracle Database: A Modern Approach to Hybrid Data Management - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Integrating MongoDB Documents in Oracle Database: A Modern Approach to Hybrid Data Management\" \/>\n<meta property=\"og:description\" content=\"In today\u2019s data-driven world, organizations often leverage a variety of databases to meet their diverse data storage and processing needs. MongoDB and Oracle Database are two prominent names in the database landscape, each excelling in different areas. MongoDB is renowned for its flexibility and scalability in handling unstructured data, while Oracle Database is a powerhouse for structured data with robust transactional capabilities.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-07-16T14:38:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-01-24T09:39:36+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/07\/oracle-database-cloud-database-oracle-corporation-oracle-cloud-png-favpng-cem6z8yAjKLVKQbeASeTHM3rU.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"820\" \/>\n\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Oracle Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Oracle Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/\"},\"author\":{\"name\":\"Oracle Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"headline\":\"Integrating MongoDB Documents in Oracle Database: A Modern Approach to Hybrid Data Management\",\"datePublished\":\"2024-07-16T14:38:53+00:00\",\"dateModified\":\"2025-01-24T09:39:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/\"},\"wordCount\":569,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/07\/oracle-database-cloud-database-oracle-corporation-oracle-cloud-png-favpng-cem6z8yAjKLVKQbeASeTHM3rU.jpeg\",\"keywords\":[\"api\",\"JavaScript\",\"mongodb\",\"oracle 23ai\",\"Oralce\"],\"articleSection\":[\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/\",\"name\":\"Integrating MongoDB Documents in Oracle Database: A Modern Approach to Hybrid Data Management - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/07\/oracle-database-cloud-database-oracle-corporation-oracle-cloud-png-favpng-cem6z8yAjKLVKQbeASeTHM3rU.jpeg\",\"datePublished\":\"2024-07-16T14:38:53+00:00\",\"dateModified\":\"2025-01-24T09:39:36+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/07\/oracle-database-cloud-database-oracle-corporation-oracle-cloud-png-favpng-cem6z8yAjKLVKQbeASeTHM3rU.jpeg\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/07\/oracle-database-cloud-database-oracle-corporation-oracle-cloud-png-favpng-cem6z8yAjKLVKQbeASeTHM3rU.jpeg\",\"width\":820,\"height\":512,\"caption\":\"MongoDB integration with Oracle\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Integrating MongoDB Documents in Oracle Database: A Modern Approach to Hybrid Data Management\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\",\"name\":\"Oracle Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"caption\":\"Oracle Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Integrating MongoDB Documents in Oracle Database: A Modern Approach to Hybrid Data Management - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/","og_locale":"en_US","og_type":"article","og_title":"Integrating MongoDB Documents in Oracle Database: A Modern Approach to Hybrid Data Management","og_description":"In today\u2019s data-driven world, organizations often leverage a variety of databases to meet their diverse data storage and processing needs. MongoDB and Oracle Database are two prominent names in the database landscape, each excelling in different areas. MongoDB is renowned for its flexibility and scalability in handling unstructured data, while Oracle Database is a powerhouse for structured data with robust transactional capabilities.","og_url":"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/","og_site_name":"dbi Blog","article_published_time":"2024-07-16T14:38:53+00:00","article_modified_time":"2025-01-24T09:39:36+00:00","og_image":[{"width":820,"height":512,"url":"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/07\/oracle-database-cloud-database-oracle-corporation-oracle-cloud-png-favpng-cem6z8yAjKLVKQbeASeTHM3rU.jpeg","type":"image\/jpeg"}],"author":"Oracle Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oracle Team","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/"},"author":{"name":"Oracle Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"headline":"Integrating MongoDB Documents in Oracle Database: A Modern Approach to Hybrid Data Management","datePublished":"2024-07-16T14:38:53+00:00","dateModified":"2025-01-24T09:39:36+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/"},"wordCount":569,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/07\/oracle-database-cloud-database-oracle-corporation-oracle-cloud-png-favpng-cem6z8yAjKLVKQbeASeTHM3rU.jpeg","keywords":["api","JavaScript","mongodb","oracle 23ai","Oralce"],"articleSection":["Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/","url":"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/","name":"Integrating MongoDB Documents in Oracle Database: A Modern Approach to Hybrid Data Management - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/07\/oracle-database-cloud-database-oracle-corporation-oracle-cloud-png-favpng-cem6z8yAjKLVKQbeASeTHM3rU.jpeg","datePublished":"2024-07-16T14:38:53+00:00","dateModified":"2025-01-24T09:39:36+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/07\/oracle-database-cloud-database-oracle-corporation-oracle-cloud-png-favpng-cem6z8yAjKLVKQbeASeTHM3rU.jpeg","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/07\/oracle-database-cloud-database-oracle-corporation-oracle-cloud-png-favpng-cem6z8yAjKLVKQbeASeTHM3rU.jpeg","width":820,"height":512,"caption":"MongoDB integration with Oracle"},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/integrating-mongodb-documents-in-oracle-database-a-modern-approach-to-hybrid-data-management\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Integrating MongoDB Documents in Oracle Database: A Modern Approach to Hybrid Data Management"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee","name":"Oracle Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","caption":"Oracle Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/33995","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=33995"}],"version-history":[{"count":10,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/33995\/revisions"}],"predecessor-version":[{"id":36860,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/33995\/revisions\/36860"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/34011"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=33995"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=33995"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=33995"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=33995"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}