CINXE.COM

ACID Properties In DBMS Explained | MongoDB | MongoDB

<!doctype html><html lang="en-us"> <head> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=5"> <meta charset="utf-8"> <meta http-equiv="Accept-CH" content="DPR"> <link rel="preconnect" href="https://static.mongodb.com" crossorigin /> <link rel="dns-prefetch" href="https://static.mongodb.com" /> <link rel="preconnect" href="https://webassets.mongodb.com" /> <link rel="dns-prefetch" href="https://webassets.mongodb.com" /> <link rel="preconnect" href="https://webimages.mongodb.com" /> <link rel="dns-prefetch" href="https://webimages.mongodb.com" /> <link rel="preconnect" href="https://cdn.cookielaw.org" /> <link rel="dns-prefetch" href="https://cdn.cookielaw.org" /> <link rel="preload" href="https://static.mongodb.com/com/fonts/DINWeb-Bold.woff" as="font" type="font/woff" crossorigin /> <link rel="preload" href="https://static.mongodb.com/com/fonts/EuclidCircularA-Regular-WebXL.woff2" as="font" type="font/woff2" crossorigin /> <link rel="preload" href="https://static.mongodb.com/com/fonts/EuclidCircularA-Medium-WebXL.woff2" as="font" type="font/woff2" crossorigin /> <title>ACID Properties In DBMS Explained | MongoDB | MongoDB</title> <meta property="og:type" content="article"> <meta property="og:site_name" content="MongoDB"> <meta property="og:title" content="ACID Properties In DBMS Explained | MongoDB"> <meta property="og:url" content="https://www.mongodb.com/resources/basics/databases/acid-transactions"> <meta property="og:image" content="http://s3.amazonaws.com/info-mongodb-com/_com_assets/cms/kuzt9r42or1fxvlq2-Meta_Generic.png"> <meta property="og:image:secure_url" content="https://webimages.mongodb.com/_com_assets/cms/kuzt9r42or1fxvlq2-Meta_Generic.png"> <meta name="description" content="ACID properties in DBMS make up the key aspects of an ACID transaction. In this article, we will explain the importance of atomicity, consistency, isolation, and durability."> <meta property="og:description" content="ACID properties in DBMS make up the key aspects of an ACID transaction. In this article, we will explain the importance of atomicity, consistency, isolation, and durability."> <meta name="segment-site-verification" content="H9hNimEbN3E66ZW2Xe50qbKSSivU8oDk"> <link rel="canonical" href="https://www.mongodb.com/resources/basics/databases/acid-transactions"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:site" content="@mongodb"> <meta name="twitter:title" content="ACID Properties In DBMS Explained | MongoDB"> <meta name="twitter:description" content="ACID properties in DBMS make up the key aspects of an ACID transaction. In this article, we will explain the importance of atomicity, consistency, isolation, and durability."> <link rel="icon" href="/assets/images/global/favicon.ico" type="image/x-icon"> <link rel="shortcut icon" href="/assets/images/global/favicon.ico"> <link rel="stylesheet" href="https://static.mongodb.com/com/mongodb-general.3758a3cb0a171e8afa58c94042d87567.css"> <script type="application/ld+json"> {"@context":"http://schema.org","@type":"Organization","name":"MongoDB","url":"https://www.mongodb.com","logo":"https://webassets.mongodb.com/_com_assets/cms/mongodb_logo1-76twgcu2dm.png"} </script> <script> window.Intercom = function () { window.Intercom.c(arguments) } window.Intercom.q = [] window.Intercom.c = function (args) { window.Intercom.q.push(args) } </script> <link rel="preload" href="//cdn.optimizely.com/js/15508090763.js" as="script"> <link rel="preconnect" href="//logx.optimizely.com"> <script src="https://cdn.optimizely.com/js/15508090763.js" ></script> <script> // Can be removed once we stop supporting legacy edge. window.globalThis = window.globalThis || window </script> <script async>Number.isNaN = Number.isNaN || function (x) { return x !== x }</script> <script> !function(e,n){var t=document.createElement("script"),o=null,x="pathway";t.async=!0,t.src='https://'+x+'.mongodb.com/'+(e?x+'-debug.js':''),document.head.append(t),t.addEventListener("load",function(){o=window.pathway.default,(n&&o.configure(n)),o.createProfile("mongodbcom").load(),window.segment=o})}(); </script> <script async src="https://cdn.jsdelivr.net/npm/smoothscroll-polyfill@0.4.4/dist/smoothscroll.min.js"></script> <!-- scripts loaded on all pages --> <script> window.SENTRY = { release: 'commit: 2e2d9a4', environment: 'production' } window.BUGSNAG = { apiKey: '85488288cc4942da2965a8b7e07bbf38', appVersion: 'commit: 2e2d9a4', releaseStage: 'production' } </script> <script> if (global === undefined) { var global = window } </script> <script type="module" crossorigin="anonymous" async src="https://static.mongodb.com/com/mdb-components.3811a9da.js"></script> <script type="module" crossorigin="anonymous" async src="https://static.mongodb.com/com/import-run.d5b02fd3.js"></script> <script type="module" crossorigin="anonymous" async src="https://static.mongodb.com/com/report-error.42f17b29.js"></script> <script type="module" crossorigin="anonymous" async src="https://static.mongodb.com/com/bootstrap-editor.5019f911.js"></script> <style data-styled="fJwnBQ obHHn jykCsU emWlgh" data-styled-version="4.4.1"> /* sc-component-id: Article__ArticleStyles-sc-14w82yl-0 */ .obHHn pre > code{background:black;overflow-x:auto;} /* sc-component-id: Details__Container-sc-wfooue-0 */ .emWlgh{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;border-radius:4px;cursor:pointer;box-shadow:0 2px 7px 0 rgba(0,0,0,0.2);width:100%;background-color:white;margin:20px 0;padding-left:30px;} /* sc-component-id: Table__TableContainer-sc-1025gsh-0 */ .jykCsU{width:100%;border-collapse:collapse;} .jykCsU thead{font-family:'Akzidenz Grotesk BQ Medium';font-weight:500;} .jykCsU th{font-size:18px;font-weight:500;color:#116149;padding:15px;-webkit-flex:1;-ms-flex:1;flex:1;} .jykCsU tbody{border-radius:4px;} .jykCsU tbody.box-shadow{box-shadow:0 0 0 1px #b3bbc1;} .jykCsU tbody.mobileTable{box-shadow:0 0 0 1px #b3bbc1 !important;} .jykCsU tbody.no-shadow{box-shadow:none;} .jykCsU tbody.left-box-shadow{box-shadow:-1px 0 0 1px #b3bbc1;} .jykCsU tbody.right-box-shadow{box-shadow:1px 0 0 1px #b3bbc1;} .jykCsU tr{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;} .jykCsU tr.striped:nth-of-type(even){background-color:#f5f6f7;} .jykCsU tr.striped:nth-of-type(odd){background-color:#ffffff;} .jykCsU tr.smoke{background-color:#f5f6f7;} .jykCsU tr.white{background-color:#fff;} .jykCsU tr.striped:last-child:nth-of-type(even) td.promoted:after{background:#f5f6f7;} .jykCsU tr.striped:last-child:nth-of-type(odd) td.promoted:after{background:#fff;} .jykCsU tr.smoke:first-child td.promoted:after{background:#f5f6f7;} .jykCsU tr.smoke:last-child td.promoted:after{background:#f5f6f7;} .jykCsU tr.white:last-child td.promoted:after{background:#fff;} .jykCsU tr:first-child td.promoted:after,.jykCsU tr:last-child td.promoted:after{content:' ';white-space:pre;width:100%;position:absolute;left:-1px;border-left:1px solid #13aa52;border-right:1px solid #13aa52;height:15px;} .jykCsU tr:first-child{border-top-left-radius:4px;border-top-right-radius:4px;} .jykCsU tr:first-child td.promoted:after{background:#fff;border-top-left-radius:4px;border-top-right-radius:4px;border-top:1px solid #13aa52;top:-15px;} .jykCsU tr:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;} .jykCsU tr:last-child td.promoted:after{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:1px solid #13aa52;bottom:-15px;} .jykCsU td{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex:1;-ms-flex:1;flex:1;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding:15px;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;} .jykCsU td.promoted{position:relative;border-left:1px solid #13aa52;border-right:1px solid #13aa52;} @media (max-width:800px){.jykCsU td{font-size:14px;}} .jykCsU img{max-height:18px;} /* sc-component-id: editor-page__ContentWrapper-sc-1rxkxf7-0 */ @media (min-width:500px){.fJwnBQ{min-height:calc(100vh - 70px);}}</style> </head> <body> <noscript> <iframe src="https://obseu.michiganrobotflower.com/ns/1026a1528f8727653fd96984e7b20 597.html?ch=cheq4ppc" width="0" height="0" style="display:none"></iframe> </noscript> <!-- End CHEQ INVOCATION TAG (noscript) --> <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-GDFN&nojscript=true" style="display:none"></iframe> </noscript> <!-- CHEQ INVOCATION TAG (noscript) --> <div class="react-root"><div><div class="editor-page__ContentWrapper-sc-1rxkxf7-0 fJwnBQ"><div class="pencil-banner-no-underline"><style data-emotion="css qdug2f">.css-qdug2f{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;min-height:40px;height:auto;box-sizing:border-box;overflow:hidden;width:100%;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:8px 24px;-webkit-text-decoration:none;text-decoration:none;color:#00684A;background-color:#00684A;}@media screen and (min-width: 460px){.css-qdug2f{height:40px;}}@media screen and (min-width: 1024px){.css-qdug2f{padding-left:48px;padding-right:48px;}}.css-qdug2f:hover mark{-webkit-text-decoration:underline;text-decoration:underline;}</style><div class="css-qdug2f"><style data-emotion="css bz3nwe">.css-bz3nwe{max-width:1420px;}</style><div class="css-bz3nwe"><style data-emotion="css j69nk4">.css-j69nk4{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:gap-inc30;-webkit-text-decoration:none;text-decoration:none;max-width:100%;}.css-j69nk4:hover{-webkit-text-decoration:none;text-decoration:none;}.css-j69nk4:hover mark{-webkit-text-decoration:underline;text-decoration:underline;}@media screen and (min-width: 460px){.css-j69nk4{max-width:unset;}}</style><a href="https://www.mongodb.com/events/aws-reinvent?tck=pencil_banner" tabIndex="0" class="css-j69nk4"><style data-emotion="css 4yi48v">.css-4yi48v{height:24px;line-height:24px;padding-left:12px;padding-right:12px;padding-top:0;padding-bottom:0;margin-right:16px;font-size:9px;white-space:nowrap;font-weight:600;}</style><style data-emotion="css crof2h">.css-crof2h{font-weight:600;text-transform:uppercase;font-family:Source Code Pro;line-height:16px;font-size:12px;display:inline-block;border-radius:999px;padding:4px 16px;letter-spacing:2.5px;color:#001E2B;background-color:#B1FF05;height:24px;line-height:24px;padding-left:12px;padding-right:12px;padding-top:0;padding-bottom:0;margin-right:16px;font-size:9px;white-space:nowrap;font-weight:600;}</style><span class="css-crof2h">Event</span><style data-emotion="css 36hkg1">.css-36hkg1{-webkit-text-decoration:none;text-decoration:none;color:white;font-weight:400;font-size:12px;line-height:18px;font-family:Source Code Pro,Noto Sans KR,Noto Sans SC,Noto Sans JP;overflow:hidden;text-overflow:ellipsis;}@media screen and (min-width: 768px){.css-36hkg1{max-width:85vw;}}.css-36hkg1 mark{color:#E9FF99;background-color:transparent;}.css-36hkg1>span{overflow:inherit;text-overflow:inherit;}@media (max-width: 767px){.css-36hkg1{font-weight:400;font-size:12px;line-height:16px;}.css-36hkg1>span{white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-36hkg1>span:first-child{display:none;}.css-36hkg1>span:last-child{display:-webkit-box;}}@media (min-width: 768px){.css-36hkg1{font-weight:400;font-size:12px;line-height:16px;}.css-36hkg1>span{white-space:nowrap;}.css-36hkg1>span:first-child{display:block;}.css-36hkg1>span:last-child{display:none;}}</style><style data-emotion="css m8dkdf">.css-m8dkdf{margin:0;color:#001E2B;font-family:Euclid Circular A;font-size:14px;line-height:16px;-webkit-text-decoration:none;text-decoration:none;color:white;font-weight:400;font-size:12px;line-height:18px;font-family:Source Code Pro,Noto Sans KR,Noto Sans SC,Noto Sans JP;overflow:hidden;text-overflow:ellipsis;}@media screen and (min-width: 460px){.css-m8dkdf{font-size:14px;line-height:16px;}}@media screen and (min-width: 768px){.css-m8dkdf{font-size:14px;line-height:16px;}}@media screen and (min-width: 1024px){.css-m8dkdf{font-size:14px;line-height:16px;}}@media screen and (min-width: 768px){.css-m8dkdf{max-width:85vw;}}.css-m8dkdf mark{color:#E9FF99;background-color:transparent;}.css-m8dkdf>span{overflow:inherit;text-overflow:inherit;}@media (max-width: 767px){.css-m8dkdf{font-weight:400;font-size:12px;line-height:16px;}.css-m8dkdf>span{white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-m8dkdf>span:first-child{display:none;}.css-m8dkdf>span:last-child{display:-webkit-box;}}@media (min-width: 768px){.css-m8dkdf{font-weight:400;font-size:12px;line-height:16px;}.css-m8dkdf>span{white-space:nowrap;}.css-m8dkdf>span:first-child{display:block;}.css-m8dkdf>span:last-child{display:none;}}</style><span class="css-m8dkdf"><span>Join us at AWS re:Invent 2024! Learn how to use MongoDB for AI use cases. <mark>Learn more >></mark></span><span>Join us at AWS re:Invent 2024! Learn how to use MongoDB for AI use cases. <mark>&gt;&gt;</mark></span></span></a></div></div></div><div style="position: sticky; top: 0px; z-index: 9999; width: 100%;"><style data-emotion="css-global wo4i12">@font-face{font-family:Akzidenz-Grotesk Std;src:url(https://static.mongodb.com/com/fonts/EuclidCircularA-Regular-WebXL.woff2) format('woff2');font-weight:300;font-style:normal;font-display:swap;}@font-face{font-family:Akzidenz-Grotesk Std;src:url(https://static.mongodb.com/com/fonts/EuclidCircularA-Medium-WebXL.woff2) format('woff2');font-weight:500;font-style:normal;font-display:swap;}</style><style data-emotion="css-global 17v57cw">@font-face{font-family:Euclid Circular A;src:url(https://static.mongodb.com/com/fonts/EuclidCircularA-Regular-WebXL.woff2) format('woff2');font-weight:normal;font-display:swap;}@font-face{font-family:Euclid Circular A;src:url(https://static.mongodb.com/com/fonts/EuclidCircularA-Medium-WebXL.woff2) format('woff2');font-weight:500;font-display:swap;}@font-face{font-family:MongoDB Value Serif;src:url(https://static.mongodb.com/com/fonts/MongoDBValueSerif-Regular.woff2) format('woff2');font-weight:normal;font-display:swap;}@font-face{font-family:MongoDB Value Serif;src:url(https://static.mongodb.com/com/fonts/MongoDBValueSerif-Medium.woff2) format('woff2');font-weight:500;font-display:swap;}@font-face{font-family:MongoDB Value Serif;src:url(https://static.mongodb.com/com/fonts/MongoDBValueSerif-Bold.woff2) format('woff2');font-weight:bold;font-display:swap;}@font-face{font-family:Source Code Pro;src:url(https://static.mongodb.com/com/fonts/SourceCodePro-Regular.ttf) format('truetype');font-weight:normal;font-display:swap;}@font-face{font-family:Source Code Pro;src:url(https://static.mongodb.com/com/fonts/SourceCodePro-Medium.ttf) format('truetype');font-weight:500;font-display:swap;}</style><style data-emotion="css 1ek23uy">.css-1ek23uy{width:100%;position:relative;top:0;left:0;z-index:1;}</style><nav role="navigation" class="css-1ek23uy"><style data-emotion="css hyy04k">.css-hyy04k{display:none;}@media screen and (min-width: 1024px){.css-hyy04k{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}</style><style data-emotion="css x1631f">.css-x1631f{width:100%;background-color:#ffffff;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;border-bottom:0;}@media screen and (min-width: 1024px){.css-x1631f{border-bottom:1px solid #b8c4c2;}}</style><style data-emotion="css 4eenyd">.css-4eenyd{box-sizing:border-box;margin:0;min-width:0;width:100%;background-color:#ffffff;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;border-bottom:0;}@media screen and (min-width: 1024px){.css-4eenyd{border-bottom:1px solid #b8c4c2;}}</style><div class="css-4eenyd"><style data-emotion="css z9tlrl">.css-z9tlrl{width:100%;max-width:1512px;background-color:#ffffff;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-family:Euclid Circular A,Noto Sans KR,Noto Sans SC,Noto Sans JP;font-weight:300;height:95px;padding-left:48px;padding-right:48px;display:none;}@media screen and (min-width: 1024px){.css-z9tlrl{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}</style><style data-emotion="css frivp1">.css-frivp1{box-sizing:border-box;margin:0;min-width:0;width:100%;max-width:1512px;background-color:#ffffff;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-family:Euclid Circular A,Noto Sans KR,Noto Sans SC,Noto Sans JP;font-weight:300;height:95px;padding-left:48px;padding-right:48px;display:none;}@media screen and (min-width: 1024px){.css-frivp1{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}</style><div class="css-frivp1"><style data-emotion="css 15nzs5q">.css-15nzs5q{font-size:14px;line-height:37px;height:32px;width:126px;max-width:none;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}</style><a href="https://www.mongodb.com" class="css-15nzs5q"><style data-emotion="css 1qo9kov">.css-1qo9kov{width:384px;min-width:100px;font-size:14px;line-height:37px;height:32px;width:126px;max-width:none;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}</style><img src="https://webimages.mongodb.com/_com_assets/cms/kuyjf3vea2hg34taa-horizontal_default_slate_blue.svg?auto=format%252Ccompress" alt="MongoDB logo" width="126" height="32" class="css-1qo9kov" /></a><style data-emotion="css dc90up">.css-dc90up{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;}</style><style data-emotion="css 1ppmow7">.css-1ppmow7{box-sizing:border-box;margin:0;min-width:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;}</style><div class="header-desktop-buttons css-1ppmow7"><style data-emotion="css oc61gb">.css-oc61gb{background-color:#ffffff;opacity:0;-webkit-transition:opacity 250ms;transition:opacity 250ms;width:100%;height:95px;position:absolute;left:0;z-index:-1;top:0;}</style><style data-emotion="css 11yhye9">.css-11yhye9{box-sizing:border-box;margin:0;min-width:0;background-color:#ffffff;opacity:0;-webkit-transition:opacity 250ms;transition:opacity 250ms;width:100%;height:95px;position:absolute;left:0;z-index:-1;top:0;}</style><div class="css-11yhye9"></div><style data-emotion="css e3nr25">.css-e3nr25{position:absolute;visibility:hidden;z-index:-1;}</style><style data-emotion="css xapp63">.css-xapp63{box-sizing:border-box;margin:0;min-width:0;position:absolute;visibility:hidden;z-index:-1;}</style><div class="css-xapp63"><style data-emotion="css 1c69emu">.css-1c69emu{position:relative;width:90%;top:0;height:95px;display:none;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:24px;}@media screen and (min-width: 1024px){.css-1c69emu{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}</style><form role="search" method="GET" action="https://www.mongodb.com/search" class="css-1c69emu"><style data-emotion="css 1vufwc5">.css-1vufwc5{z-index:2;margin-top:-500px;-webkit-transition:margin-top 250ms;transition:margin-top 250ms;width:100%;display:grid;grid-template-columns:3fr 1fr;grid-gap:8px;padding-right:24px;}</style><style data-emotion="css 87svlz">.css-87svlz{box-sizing:border-box;margin:0;min-width:0;z-index:2;margin-top:-500px;-webkit-transition:margin-top 250ms;transition:margin-top 250ms;width:100%;display:grid;grid-template-columns:3fr 1fr;grid-gap:8px;padding-right:24px;}</style><div class="css-87svlz"><style data-emotion="css 36i4c2">.css-36i4c2{display:inline-block;position:relative;width:100%;z-index:2;}</style><div class="css-36i4c2"><style data-emotion="css 9vd5ud">.css-9vd5ud{width:100%;}</style><style data-emotion="css etrcff">.css-etrcff{--input-padding:16px;--invalid-input-padding:48px;--border-width:1px;background-color:#ffffff;border-color:#b8c4c2;color:#21313c;width:100%;}.css-etrcff{cursor:default;outline:none;font-size:16px;font-family:Akzidenz-Grotesk Std;font-weight:300;line-height:16px;border-radius:4px;border-style:solid;border-width:1px;box-sizing:border-box;height:48px;padding-top:calc(var(--input-padding) - var(--border-width));padding-bottom:calc(var(--input-padding) - var(--border-width));padding-left:calc(var(--input-padding) - var(--border-width));padding-right:calc(var(--input-padding) - var(--border-width));}.css-etrcff::-webkit-input-placeholder{font-weight:300;color:#21313c;}.css-etrcff::-moz-placeholder{font-weight:300;color:#21313c;}.css-etrcff:-ms-input-placeholder{font-weight:300;color:#21313c;}.css-etrcff::placeholder{font-weight:300;color:#21313c;}</style><input type="text" placeholder="Search products, whitepapers, &amp; more..." value class="css-etrcff" /></div><style data-emotion="css 13va512">.css-13va512{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;min-width:298px;z-index:2;}</style><style data-emotion="css v2nqhr">.css-v2nqhr{box-sizing:border-box;margin:0;min-width:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;min-width:298px;z-index:2;}</style><div class="css-v2nqhr"><style data-emotion="css aef77t">.css-aef77t{width:250px;display:inline-block;position:relative;}</style><div class="css-aef77t"><style data-emotion="css v1v2x1">.css-v1v2x1{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:250px;height:48px;border:1px solid #b8c4c2;border-radius:4px;box-sizing:border-box;cursor:pointer;font-weight:300;background-color:#ffffff;padding-left:0;color:#3d4f58;border-color:#b8c4c2;}</style><button role="button" type="button" class="css-v1v2x1"><style data-emotion="css 6k4l2y">.css-6k4l2y{font-family:Akzidenz-Grotesk Std;font-size:16px;line-height:16px;color:#21313c;padding-left:16px;width:250px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left;}</style><span data-testid="selected-value" class="css-6k4l2y">General Information</span><style data-emotion="css 109dpaz">.css-109dpaz{padding:0 16px;}</style><div class="css-109dpaz"><style data-emotion="css 1yzkxhp">.css-1yzkxhp{-webkit-transform:rotateZ(0.5deg);-moz-transform:rotateZ(0.5deg);-ms-transform:rotateZ(0.5deg);transform:rotateZ(0.5deg);-webkit-transition:-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out;z-index:0;}</style><svg data-testid="icon" width="16" height="9" viewBox="0 0 16 9" fill="none" xmlns="http://www.w3.org/2000/svg" class="css-1yzkxhp"><style data-emotion="css 1tlq8q9">.css-1tlq8q9{stroke:#3d4f58;}</style><path d="M1.06689 0.799988L8.00023 7.73332L14.9336 0.799988" stroke-linecap="round" stroke-linejoin="round" class="css-1tlq8q9"></path></svg></div></button><style data-emotion="css 9vmgd1">.css-9vmgd1{visibility:hidden;position:absolute;z-index:1000;display:none;width:100%;min-width:250px;padding:16px;line-height:16px;font-size:16px;color:#21313c;font-family:Akzidenz-Grotesk Std;background-color:#ffffff;border:1px solid #b8c4c2;border-radius:8px;box-sizing:border-box;box-shadow:0px 3px 9px rgba(0, 0, 0, 0.15);}</style><div class="css-9vmgd1"><style data-emotion="css ac9zo2">.css-ac9zo2{list-style-type:none;margin:0;padding:0;}</style><ul data-testid="options" role="listbox" class="css-ac9zo2"><style data-emotion="css 11dtrvq">.css-11dtrvq{cursor:pointer;padding:8px;}.css-11dtrvq:not(:last-child){margin-bottom:8px;}.css-11dtrvq:hover{border-radius:2px;background-color:#e7f2eb;color:#09804c;}</style><li role="option" tabIndex="0" class="css-11dtrvq">General Information</li><li role="option" tabIndex="0" class="css-11dtrvq">Documentation</li><li role="option" tabIndex="0" class="css-11dtrvq">Developer Articles &amp; Topics</li><li role="option" tabIndex="0" class="css-11dtrvq">Community Forums</li><li role="option" tabIndex="0" class="css-11dtrvq">Blog</li><li role="option" tabIndex="0" class="css-11dtrvq">University</li></ul></div></div><input type="hidden" id="addsearch" name="addsearch" value /><style data-emotion="css 1myrko">.css-1myrko{display:inline-block;}.css-1myrko:hover>button,.css-1myrko:hover>a{border-radius:40px;}</style><span class="css-1myrko"><style data-emotion="css 13l1z36">.css-13l1z36{width:100%;padding-top:16px;padding-bottom:16px;padding-left:32px;padding-right:32px;font-family:Euclid Circular A;font-size:16px;font-weight:500;border-radius:4px;line-height:16px;border:solid;border-width:1px;-webkit-text-decoration:none;text-decoration:none;display:inline-block;gap:8px;-webkit-transition:border-radius .15s;transition:border-radius .15s;color:#ffffff;stroke:#ffffff;fill:#ffffff;background-color:#001E2B;border-style:solid;padding:14px 14px;margin-left:4px;}@media screen and (min-width: 768px){.css-13l1z36{width:unset;}}.css-13l1z36:hover{cursor:pointer;-webkit-text-decoration:none;text-decoration:none;-webkit-transition:.1s;transition:.1s;}.css-13l1z36:active{box-shadow:0px 0px 0px 3px rgba(242, 197, 238, 1);-webkit-transition:.1s;transition:.1s;}.css-13l1z36:disabled,.css-13l1z36disabled:hover{color:#5d6c74;stroke:#5d6c74;fill:#5d6c74;border-color:#21313c;border-width:1px;border-radius:4px;cursor:not-allowed;}</style><button type="submit" tabIndex="0" data-track="true" class=" css-13l1z36"><style data-emotion="css r9fohf">.css-r9fohf{max-width:unset;}</style><img alt="search icon" src="https://webimages.mongodb.com/_com_assets/cms/lyj1z1iiimsre0lsz-search_updated_white.svg?auto=format%252Ccompress" width="18" height="18" class="css-r9fohf" /></button></span></div></div></form></div><style data-emotion="css 29u6e6">.css-29u6e6{margin:0;margin-left:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:95px;list-style:none;padding:0;opacity:1;pointer-events:initial;-webkit-transition:opacity 250ms;transition:opacity 250ms;position:unset;-webkit-animation:fadeIn 0.5s forwards;animation:fadeIn 0.5s forwards;}@media screen and (max-width: 1416px){.css-29u6e6{margin-left:12px;}}@global{@-webkit-keyframes fadeIn{from{opacity:0;}to{opacity:1;}}@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}@-webkit-keyframes fadeOut{from{opacity:1;}to{opacity:0;}}@keyframes fadeOut{from{opacity:1;}to{opacity:0;}}}</style><ul class="header-desktop-nav-list css-29u6e6"><style data-emotion="css 37iurc">.css-37iurc{padding-left:20px;padding-right:20px;}</style><li class="header-nav-menu-item css-37iurc"><style data-emotion="css 8w0qf3">.css-8w0qf3{font-family:Euclid Circular A,Noto Sans KR,Noto Sans SC,Noto Sans JP;position:relative;height:95px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-text-decoration:none;text-decoration:none;letter-spacing:unset;min-width:calc(64px + 4px);-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;cursor:pointer;white-space:nowrap;}.css-8w0qf3 .nav-chevron{margin-left:2px;fill:#5d6c74;-webkit-transition:-webkit-transform 250ms,fill 200ms;transition:transform 250ms,fill 200ms;}.css-8w0qf3:hover{-webkit-text-decoration:none;text-decoration:none;}.css-8w0qf3:focus-visible{outline:-webkit-focus-ring-color auto 1px;}</style><style data-emotion="css jxj2lf">.css-jxj2lf{font-family:Euclid Circular A;font-weight:300;cursor:pointer;background:none;border:none;padding:0px;font-size:16px;line-height:32px;color:#21313c;font-family:Euclid Circular A,Noto Sans KR,Noto Sans SC,Noto Sans JP;position:relative;height:95px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-text-decoration:none;text-decoration:none;letter-spacing:unset;min-width:calc(64px + 4px);-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;cursor:pointer;white-space:nowrap;}.css-jxj2lf .nav-chevron{margin-left:2px;fill:#5d6c74;-webkit-transition:-webkit-transform 250ms,fill 200ms;transition:transform 250ms,fill 200ms;}.css-jxj2lf:hover{-webkit-text-decoration:none;text-decoration:none;}.css-jxj2lf:focus-visible{outline:-webkit-focus-ring-color auto 1px;}</style><button tabIndex="0" data-track="true" class="css-jxj2lf"><style data-emotion="css 1edz58y">.css-1edz58y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:left;}.css-1edz58y .textlink-default-text-class{color:#001E2B;border-bottom:0;-webkit-transition:color 200ms,text-shadow 200ms;transition:color 200ms,text-shadow 200ms;}.css-1edz58y .textlink-default-text-class:hover{border-bottom:2px solid #061621;}@media screen and (max-width: 1416px){.css-1edz58y .textlink-default-text-class{font-size:15px;line-height:15px;}}.css-1edz58y .textlink-default-text-class:hover{border-bottom:0;color:#00684A;text-shadow:0 0 1px rgba(0, 104, 74, 0.5);}.css-1edz58y .textlink-default-text-class:hover .nav-chevron{fill:#00684A;}.css-1edz58y .textlink-arrow-class{color:#00AA57;}.css-1edz58y .textlink-link-icon-class{color:#21313c;}.css-1edz58y:hover .textlink-text-class{color:#00AA57;-webkit-animation:linear 1 alternate;-webkit-animation-name:color;-webkit-animation-duration:300ms;}@-webkit-keyframes color{0%{color:#061621;}100%{left:green50;}}.css-1edz58y:hover .textlink-arrow-class{left:0;-webkit-animation:linear 1 alternate;-webkit-animation-name:runLink;-webkit-animation-duration:300ms;}@-webkit-keyframes runTitle{0%{left:0;}33%{left:25px;}66%{left:-25px;}100%{left:0;}}@-webkit-keyframes runLink{0%{left:-100px;}100%{left:0;}}</style><span class="css-1edz58y"><style data-emotion="css aq3x7l">.css-aq3x7l{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:16px;line-height:32px;color:#21313c;}</style><span class="textlink-default-text-class css-aq3x7l">Products<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" class="nav-chevron"><path fill-rule="evenodd" clip-rule="evenodd" d="M4.18362 5.76804C4.29823 5.65778 4.45193 5.59753 4.61093 5.60053C4.76994 5.60353 4.92126 5.66953 5.03162 5.78404L7.99962 8.93444L10.9676 5.78404C11.0216 5.72457 11.0869 5.67653 11.1598 5.64277C11.2326 5.609 11.3115 5.59021 11.3918 5.5875C11.472 5.58479 11.552 5.59821 11.627 5.62698C11.7019 5.65575 11.7704 5.69927 11.8282 5.75497C11.8861 5.81066 11.9321 5.87741 11.9637 5.95124C11.9953 6.02507 12.0117 6.10449 12.012 6.18478C12.0123 6.26508 11.9965 6.34463 11.9656 6.41871C11.9346 6.49278 11.889 6.55989 11.8316 6.61604L8.43162 10.216C8.37565 10.2741 8.30855 10.3203 8.23432 10.3519C8.1601 10.3834 8.08028 10.3997 7.99962 10.3997C7.91897 10.3997 7.83915 10.3834 7.76492 10.3519C7.6907 10.3203 7.62359 10.2741 7.56762 10.216L4.16762 6.61604C4.05736 6.50144 3.99711 6.34774 4.00011 6.18873C4.00311 6.02972 4.06911 5.87841 4.18362 5.76804Z" fill="inherit"></path></svg></span></span></button><style data-emotion="css 1e4twiw animation-1w559i1">.css-1e4twiw{border-radius:16px;box-shadow:0px 3px 20px 0px rgba(0, 0, 0, 0.15);position:absolute;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;max-height:calc(100vh - 88px);top:100%;left:34px;margin-top:-8px;background:#ffffff;-webkit-animation:animation-1w559i1 0.2s ease-in-out forwards;animation:animation-1w559i1 0.2s ease-in-out forwards;visibility:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;}@-webkit-keyframes animation-1w559i1{from{opacity:1;}to{opacity:0;}}@keyframes animation-1w559i1{from{opacity:1;}to{opacity:0;}}</style><div class="css-1e4twiw"><style data-emotion="css 9ph9zl">.css-9ph9zl{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}</style><div class="css-9ph9zl"><style data-emotion="css 1t6t43">.css-1t6t43{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}</style><div class="css-1t6t43"><style data-emotion="css x20kx8">.css-x20kx8{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-left:32px;padding-right:16px;padding-top:32px;}</style><div class="css-x20kx8"><style data-emotion="css xddzfi">.css-xddzfi{width:344px;max-width:344px;margin-right:40px;}</style><div class="css-xddzfi"><style data-emotion="css 1sdjll7">.css-1sdjll7{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex:1;-ms-flex:1;flex:1;padding-bottom:10px;}</style><div class="css-1sdjll7"><style data-emotion="css 18955fu">.css-18955fu{font-size:12px;line-height:12px;min-height:12px;font-weight:600;color:#3d4f58;margin-bottom:14px;text-transform:uppercase;}</style><div class="css-18955fu">Platform</div><style data-emotion="css 5tnj2v">.css-5tnj2v{padding-left:8px;padding-right:8px;padding-top:10px;padding-bottom:10px;margin-left:-8px;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;border-radius:8px;line-height:16px;-webkit-transition:background 0.3s ease-out;transition:background 0.3s ease-out;margin-bottom:4px;}@media screen and (min-width: 1024px){.css-5tnj2v{margin-bottom:12px;}}.css-5tnj2v .menu-title{font-size:14px;line-height:14px;}@media screen and (min-width: 1024px){.css-5tnj2v .menu-title{font-size:16px;line-height:16px;}}.css-5tnj2v:hover{background:#fafbfc;}</style><style data-emotion="css 19929cr">.css-19929cr{font-family:Euclid Circular A;font-weight:500;cursor:pointer;-webkit-text-decoration:none;text-decoration:none;display:inline-block;font-size:16px;line-height:32px;color:#006CFA;padding-left:8px;padding-right:8px;padding-top:10px;padding-bottom:10px;margin-left:-8px;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;border-radius:8px;line-height:16px;-webkit-transition:background 0.3s ease-out;transition:background 0.3s ease-out;margin-bottom:4px;}.css-19929cr:hover{-webkit-text-decoration:none;text-decoration:none;}@media screen and (min-width: 1024px){.css-19929cr{margin-bottom:12px;}}.css-19929cr .menu-title{font-size:14px;line-height:14px;}@media screen and (min-width: 1024px){.css-19929cr .menu-title{font-size:16px;line-height:16px;}}.css-19929cr:hover{background:#fafbfc;}</style><a tabIndex="0" href="https://www.mongodb.com/atlas" target="_self" data-track="true" class="css-19929cr"><style data-emotion="css 1gdkn91">.css-1gdkn91{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:left;}.css-1gdkn91 .textlink-default-text-class{color:#001E2B;line-height:16px;border-bottom:0;font-weight:500;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-text-decoration:none;text-decoration:none;}.css-1gdkn91 .textlink-default-text-class:hover{border-bottom:0;-webkit-text-decoration:none;text-decoration:none;}.css-1gdkn91 .textlink-arrow-class{color:#001E2B;line-height:32px;}.css-1gdkn91 .textlink-link-icon-class{color:#001E2B;line-height:32px;}</style><span class="css-1gdkn91"><style data-emotion="css pbhol6">.css-pbhol6{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:16px;line-height:32px;color:#006CFA;}.css-pbhol6:hover{-webkit-text-decoration:none;text-decoration:none;}</style><span class="textlink-default-text-class css-pbhol6"><style data-emotion="css 6orj5s">.css-6orj5s{width:32px;height:32px;margin-right:12px;}</style><img src="https://webimages.mongodb.com/_com_assets/icons/atlas_product_family.svg" alt="atlas_product_family" class=" css-6orj5s" /><style data-emotion="css x4n4mc">.css-x4n4mc{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}</style><span class="css-x4n4mc"><span class="menu-title">Atlas</span><style data-emotion="css mmbp4l">.css-mmbp4l{display:inline-block;font-size:12px;line-height:15px;font-weight:400;color:#5d6c74;margin-top:4px;}@media screen and (min-width: 1024px){.css-mmbp4l{font-size:14px;line-height:18px;}}</style><span class="css-mmbp4l">Build on a developer data platform</span></span></span></span></a></div><div class="css-1sdjll7"><div class="css-18955fu">Platform Services</div><a tabIndex="0" href="https://www.mongodb.com/products/platform/atlas-database" target="_self" data-track="true" class="css-19929cr"><span class="css-1gdkn91"><span class="textlink-default-text-class css-pbhol6"><img src="https://webimages.mongodb.com/_com_assets/icons/atlas_database.svg" alt="atlas_database" class=" css-6orj5s" /><span class="css-x4n4mc"><span class="menu-title">Database</span><span class="css-mmbp4l">Deploy a multi-cloud database</span></span></span></span></a><a tabIndex="0" href="https://www.mongodb.com/products/platform/atlas-search" target="_self" data-track="true" class="css-19929cr"><span class="css-1gdkn91"><span class="textlink-default-text-class css-pbhol6"><img src="https://webimages.mongodb.com/_com_assets/icons/atlas_search.svg" alt="atlas_search" class=" css-6orj5s" /><span class="css-x4n4mc"><span class="menu-title">Search</span><span class="css-mmbp4l">Deliver engaging search experiences</span></span></span></span></a><a tabIndex="0" href="https://www.mongodb.com/products/platform/atlas-vector-search" target="_self" data-track="true" class="css-19929cr"><span class="css-1gdkn91"><span class="textlink-default-text-class css-pbhol6"><img src="https://webimages.mongodb.com/_com_assets/icons/mdb_vector_search.svg" alt="mdb_vector_search" class=" css-6orj5s" /><span class="css-x4n4mc"><span class="menu-title">Vector Search</span><span class="css-mmbp4l">Design intelligent apps with gen AI</span></span></span></span></a><a tabIndex="0" href="https://www.mongodb.com/products/platform/atlas-stream-processing" target="_self" data-track="true" class="css-19929cr"><span class="css-1gdkn91"><span class="textlink-default-text-class css-pbhol6"><img src="https://webimages.mongodb.com/_com_assets/icons/atlas_stream_processing.svg" alt="atlas_stream_processing" class=" css-6orj5s" /><span class="css-x4n4mc"><span class="menu-title">Stream Processing</span><span class="css-mmbp4l">Unify data in motion and data at rest</span></span></span></span></a></div></div><style data-emotion="css fpou7b">.css-fpou7b{width:344px;max-width:344px;}</style><div class="css-fpou7b"><div class="css-1sdjll7"><div class="css-18955fu">Self Managed</div><a tabIndex="0" href="https://www.mongodb.com/products/self-managed/enterprise-advanced" target="_self" data-track="true" class="css-19929cr"><span class="css-1gdkn91"><span class="textlink-default-text-class css-pbhol6"><img src="https://webimages.mongodb.com/_com_assets/icons/enterprise_advanced_product family.svg" alt="enterprise_advanced_product family" class=" css-6orj5s" /><span class="css-x4n4mc"><span class="menu-title">Enterprise Advanced</span><span class="css-mmbp4l">Run and manage MongoDB yourself</span></span></span></span></a><a tabIndex="0" href="https://www.mongodb.com/products/self-managed/community-edition" target="_self" data-track="true" class="css-19929cr"><span class="css-1gdkn91"><span class="textlink-default-text-class css-pbhol6"><img src="https://webimages.mongodb.com/_com_assets/icons/community_edition_product_family.svg" alt="community_edition_product_family" class=" css-6orj5s" /><span class="css-x4n4mc"><span class="menu-title">Community Edition</span><span class="css-mmbp4l">Develop locally with MongoDB</span></span></span></span></a></div><div class="css-1sdjll7"><div class="css-18955fu">Tools</div><a tabIndex="0" href="https://www.mongodb.com/products/tools/compass" target="_self" data-track="true" class="css-19929cr"><span class="css-1gdkn91"><span class="textlink-default-text-class css-pbhol6"><img src="https://webimages.mongodb.com/_com_assets/icons/mdb_compass.svg" alt="mdb_compass" class=" css-6orj5s" /><span class="css-x4n4mc"><span class="menu-title">Compass</span><span class="css-mmbp4l">Work with MongoDB data in a GUI</span></span></span></span></a><a tabIndex="0" href="https://cloud.mongodb.com/ecosystem/?filter=integration" target="_self" data-track="true" class="css-19929cr"><span class="css-1gdkn91"><span class="textlink-default-text-class css-pbhol6"><img src="https://webimages.mongodb.com/_com_assets/icons/atlas_integration.svg" alt="atlas_integration" class=" css-6orj5s" /><span class="css-x4n4mc"><span class="menu-title">Integrations</span><span class="css-mmbp4l">Integrations with third-party services</span></span></span></span></a><a tabIndex="0" href="https://www.mongodb.com/products/tools/relational-migrator" target="_self" data-track="true" class="css-19929cr"><span class="css-1gdkn91"><span class="textlink-default-text-class css-pbhol6"><img src="https://webimages.mongodb.com/_com_assets/icons/mdb_migrator.svg" alt="mdb_migrator" class=" css-6orj5s" /><span class="css-x4n4mc"><span class="menu-title">Relational Migrator</span><span class="css-mmbp4l">Migrate to MongoDB with confidence</span></span></span></span></a></div></div></div><style data-emotion="css 1aq7tsw">.css-1aq7tsw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}.css-1aq7tsw>div+div{border-left:1px solid #e7eeec;}</style><div class="css-1aq7tsw"><div class="css-9vd5ud"><style data-emotion="css 86227v">.css-86227v{padding-left:32px;padding-right:16px;padding-top:16px;padding-bottom:16px;border-top:1px solid #e7eeec;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;box-sizing:border-box;line-height:14px;-webkit-transition:background 0.3s ease-out;transition:background 0.3s ease-out;}.css-86227v>span{width:100%;}.css-86227v:hover{background:#fafbfc;}.css-86227v:hover svg{opacity:1;}.css-86227v .menu-title{display:inline-block;}.css-86227v .menu-description{display:inline-block;font-size:12px;font-weight:400;color:#5d6c74;line-height:15px;margin-top:4px;}.css-86227v svg{stroke:#006CFA;opacity:0;-webkit-transition:opacity 0.3s ease-out;transition:opacity 0.3s ease-out;}</style><style data-emotion="css 7ejzmr">.css-7ejzmr{font-family:Euclid Circular A;font-weight:500;cursor:pointer;-webkit-text-decoration:none;text-decoration:none;display:inline-block;font-size:16px;line-height:32px;color:#006CFA;width:100%;padding-left:32px;padding-right:16px;padding-top:16px;padding-bottom:16px;border-top:1px solid #e7eeec;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;box-sizing:border-box;line-height:14px;-webkit-transition:background 0.3s ease-out;transition:background 0.3s ease-out;}.css-7ejzmr:hover{-webkit-text-decoration:none;text-decoration:none;}.css-7ejzmr>span{width:100%;}.css-7ejzmr:hover{background:#fafbfc;}.css-7ejzmr:hover svg{opacity:1;}.css-7ejzmr .menu-title{display:inline-block;}.css-7ejzmr .menu-description{display:inline-block;font-size:12px;font-weight:400;color:#5d6c74;line-height:15px;margin-top:4px;}.css-7ejzmr svg{stroke:#006CFA;opacity:0;-webkit-transition:opacity 0.3s ease-out;transition:opacity 0.3s ease-out;}</style><a tabIndex="0" href=" https://www.mongodb.com/products" target="_self" data-track="true" class="css-7ejzmr"><style data-emotion="css 1f7scwv">.css-1f7scwv{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:left;}.css-1f7scwv .textlink-default-text-class{color:#21313c;line-height:14px;border-bottom:0;-webkit-text-decoration:none;text-decoration:none;font-weight:500;font-size:14px;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;width:100%;}.css-1f7scwv .textlink-default-text-class:hover{border-bottom:0;-webkit-text-decoration:none;text-decoration:none;}.css-1f7scwv .textlink-arrow-class{color:#001E2B;line-height:32px;}.css-1f7scwv .textlink-link-icon-class{color:#001E2B;line-height:32px;}</style><span class="css-1f7scwv"><span class="textlink-default-text-class css-pbhol6"><style data-emotion="css 10mejol">.css-10mejol{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}</style><span class="css-10mejol"><span class="css-x4n4mc"><span class="menu-title">View All Products</span><span class="menu-description">Explore our full developer suite</span></span></span><style data-emotion="css vvcvyi">.css-vvcvyi{width:16px;height:16px;stroke:#3d4f58;fill:none;stroke-width:1px;}</style><svg viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" class=" css-vvcvyi"><title>arrow-right</title><path d="M17.3749 6.66663L26.6668 16M26.6668 16L17.3749 25.3333M26.6668 16H5.3335" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></span></span></a></div><div class="css-9vd5ud"><a tabIndex="0" href="https://www.mongodb.com/products/updates/version-release" target="_self" data-track="true" class="css-7ejzmr"><span class="css-1f7scwv"><span class="textlink-default-text-class css-pbhol6"><span class="css-10mejol"><span class="css-x4n4mc"><span class="menu-title">MongoDB 8.0</span><span class="menu-description">Our fastest version ever</span></span></span><svg viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" class=" css-vvcvyi"><title>arrow-right</title><path d="M17.3749 6.66663L26.6668 16M26.6668 16L17.3749 25.3333M26.6668 16H5.3335" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></span></span></a></div></div></div><style data-emotion="css 1p2ltr0">.css-1p2ltr0{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;border-left:6px solid #f5f7fA;}</style><div class="css-1p2ltr0"><style data-emotion="css 15n20pz">.css-15n20pz{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;min-width:208px;max-width:208px;}.css-15n20pz>.helper-section-item{border-bottom:6px solid #f5f7fA;border-top:0px;}.css-15n20pz>.helper-section-item:last-of-type{border-bottom:0;padding-bottom:24px;}</style><div class="css-15n20pz"><style data-emotion="css lkbdt0">.css-lkbdt0{width:100%;box-sizing:border-box;-webkit-flex:1;-ms-flex:1;flex:1;padding:24px;padding-bottom:18px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}</style><div class="helper-section-item css-lkbdt0"><style data-emotion="css 1lxjpys">.css-1lxjpys{font-size:12px;font-weight:500;line-height:12px;color:#21313c;}</style><div class="css-1lxjpys">Build with MongoDB Atlas</div><style data-emotion="css 1qkz7n9">.css-1qkz7n9{font-weight:400;font-size:12px;margin-top:8px;color:#5d6c74;line-height:18px;}</style><div class="css-1qkz7n9">Get started for free in minutes</div><style data-emotion="css 7ysqtr">.css-7ysqtr{margin-top:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}</style><div class="css-7ysqtr"><style data-emotion="css 1u3h8p4">.css-1u3h8p4{font-size:12px;line-height:12px;width:100%;border:1px solid #b8c4c2;padding-top:7px;padding-bottom:7px;border-radius:999px;-webkit-transition:background 0.2s ease-in,border 0.2s ease-in;transition:background 0.2s ease-in,border 0.2s ease-in;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;color:#006CFA;}.css-1u3h8p4:hover{border-color:#006CFA;color:#ffffff;background:#006CFA;}</style><style data-emotion="css zh2ocw">.css-zh2ocw{font-family:Euclid Circular A;font-weight:500;cursor:pointer;-webkit-text-decoration:none;text-decoration:none;display:inline-block;font-size:16px;line-height:32px;color:#006CFA;font-size:12px;line-height:12px;width:100%;border:1px solid #b8c4c2;padding-top:7px;padding-bottom:7px;border-radius:999px;-webkit-transition:background 0.2s ease-in,border 0.2s ease-in;transition:background 0.2s ease-in,border 0.2s ease-in;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;color:#006CFA;}.css-zh2ocw:hover{-webkit-text-decoration:none;text-decoration:none;}.css-zh2ocw:hover{border-color:#006CFA;color:#ffffff;background:#006CFA;}</style><a tabIndex="0" href="https://www.mongodb.com/cloud/atlas/register" target="_self" data-track="true" class="css-zh2ocw"><style data-emotion="css g5pq55">.css-g5pq55{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:left;}.css-g5pq55 .textlink-default-text-class{color:inherit;line-height:16px;border-bottom:0;font-size:12px;font-weight:500;-webkit-transition:color 0.2s ease-in;transition:color 0.2s ease-in;}.css-g5pq55 .textlink-default-text-class:hover{border-bottom:0;}.css-g5pq55 .textlink-arrow-class{color:#001E2B;line-height:32px;}.css-g5pq55 .textlink-link-icon-class{color:#001E2B;line-height:32px;}</style><span class="css-g5pq55"><span class="textlink-default-text-class css-pbhol6">Sign Up</span></span></a></div></div><div class="helper-section-item css-lkbdt0"><div class="css-1lxjpys">Test Enterprise Advanced</div><div class="css-1qkz7n9">Develop with MongoDB on-premises</div><div class="css-7ysqtr"><a tabIndex="0" href="https://www.mongodb.com/try/download/enterprise" target="_self" data-track="true" class="css-zh2ocw"><span class="css-g5pq55"><span class="textlink-default-text-class css-pbhol6">Download</span></span></a></div></div><div class="helper-section-item css-lkbdt0"><div class="css-1lxjpys">Try Community Edition</div><div class="css-1qkz7n9">Explore the latest version of MongoDB</div><div class="css-7ysqtr"><a tabIndex="0" href="https://www.mongodb.com/try/download/community" target="_self" data-track="true" class="css-zh2ocw"><span class="css-g5pq55"><span class="textlink-default-text-class css-pbhol6">Download</span></span></a></div></div></div></div></div></div></li><li class="header-nav-menu-item css-37iurc"><button tabIndex="0" data-track="true" class="css-jxj2lf"><span class="css-1edz58y"><span class="textlink-default-text-class css-aq3x7l">Resources<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" class="nav-chevron"><path fill-rule="evenodd" clip-rule="evenodd" d="M4.18362 5.76804C4.29823 5.65778 4.45193 5.59753 4.61093 5.60053C4.76994 5.60353 4.92126 5.66953 5.03162 5.78404L7.99962 8.93444L10.9676 5.78404C11.0216 5.72457 11.0869 5.67653 11.1598 5.64277C11.2326 5.609 11.3115 5.59021 11.3918 5.5875C11.472 5.58479 11.552 5.59821 11.627 5.62698C11.7019 5.65575 11.7704 5.69927 11.8282 5.75497C11.8861 5.81066 11.9321 5.87741 11.9637 5.95124C11.9953 6.02507 12.0117 6.10449 12.012 6.18478C12.0123 6.26508 11.9965 6.34463 11.9656 6.41871C11.9346 6.49278 11.889 6.55989 11.8316 6.61604L8.43162 10.216C8.37565 10.2741 8.30855 10.3203 8.23432 10.3519C8.1601 10.3834 8.08028 10.3997 7.99962 10.3997C7.91897 10.3997 7.83915 10.3834 7.76492 10.3519C7.6907 10.3203 7.62359 10.2741 7.56762 10.216L4.16762 6.61604C4.05736 6.50144 3.99711 6.34774 4.00011 6.18873C4.00311 6.02972 4.06911 5.87841 4.18362 5.76804Z" fill="inherit"></path></svg></span></span></button><div class="css-1e4twiw"><div class="css-9ph9zl"><div class="css-1t6t43"><div class="css-x20kx8"><style data-emotion="css cc0pau">.css-cc0pau{width:216px;max-width:216px;margin-right:32px;}</style><div class="css-cc0pau"><div class="css-1sdjll7"><div class="css-18955fu">Documentation</div><a tabIndex="0" href="https://www.mongodb.com/docs/atlas/" target="_self" data-track="true" class="css-19929cr"><style data-emotion="css 38hmqx">.css-38hmqx{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:left;}.css-38hmqx .textlink-default-text-class{color:#001E2B;line-height:16px;border-bottom:0;font-weight:500;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-text-decoration:none;text-decoration:none;}.css-38hmqx .textlink-default-text-class:hover{border-bottom:0;-webkit-text-decoration:none;text-decoration:none;}.css-38hmqx .textlink-arrow-class{color:#001E2B;line-height:32px;}.css-38hmqx .textlink-link-icon-class{color:#001E2B;line-height:32px;}</style><span class="css-38hmqx"><span class="textlink-default-text-class css-pbhol6"><span class="css-x4n4mc"><span class="menu-title">Atlas Documentation</span><span class="css-mmbp4l">Get started using Atlas</span></span></span></span></a><a tabIndex="0" href="https://www.mongodb.com/docs/manual/" target="_self" data-track="true" class="css-19929cr"><span class="css-38hmqx"><span class="textlink-default-text-class css-pbhol6"><span class="css-x4n4mc"><span class="menu-title">Server Documentation</span><span class="css-mmbp4l">Learn to use MongoDB</span></span></span></span></a><a tabIndex="0" href="https://www.mongodb.com/docs/guides/" target="_self" data-track="true" class="css-19929cr"><span class="css-38hmqx"><span class="textlink-default-text-class css-pbhol6"><span class="css-x4n4mc"><span class="menu-title">Start With Guides</span><span class="css-mmbp4l">Get step-by-step guidance for key tasks</span></span></span></span></a></div></div><style data-emotion="css eho906">.css-eho906{width:216px;max-width:216px;margin-right:10px;}</style><div class="css-eho906"><div class="css-1sdjll7"><div class="css-18955fu"> </div><a tabIndex="0" href="https://www.mongodb.com/docs/tools-and-connectors/" target="_self" data-track="true" class="css-19929cr"><span class="css-38hmqx"><span class="textlink-default-text-class css-pbhol6"><span class="css-x4n4mc"><span class="menu-title">Tools and Connectors</span><span class="css-mmbp4l">Learn how to connect to MongoDB</span></span></span></span></a><a tabIndex="0" href="https://www.mongodb.com/docs/drivers/" target="_self" data-track="true" class="css-19929cr"><span class="css-38hmqx"><span class="textlink-default-text-class css-pbhol6"><span class="css-x4n4mc"><span class="menu-title">MongoDB Drivers</span><span class="css-mmbp4l">Use drivers and libraries for MongoDB</span></span></span></span></a></div></div></div><div class="css-1aq7tsw"><div class="css-9vd5ud"><a tabIndex="0" href="https://www.mongodb.com/resources" target="_self" data-track="true" class="css-7ejzmr"><span class="css-1f7scwv"><span class="textlink-default-text-class css-pbhol6"><span class="css-10mejol"><span class="css-x4n4mc"><span class="menu-title">Resources Hub</span><span class="menu-description">Get help building the next big thing with MongoDB</span></span></span><svg viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" class=" css-vvcvyi"><title>arrow-right</title><path d="M17.3749 6.66663L26.6668 16M26.6668 16L17.3749 25.3333M26.6668 16H5.3335" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></span></span></a></div></div></div><div class="css-1p2ltr0"><style data-emotion="css 1a9krmi">.css-1a9krmi{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;min-width:208px;max-width:100%;padding-top:0px;padding-left:0px;padding-right:0px;box-sizing:border-box;}@media screen and (min-width: 1024px){.css-1a9krmi{max-width:320px;padding-top:32px;padding-left:24px;padding-right:24px;}}.css-1a9krmi>.helper-section-item{border-bottom:6px solid #f5f7fA;border-top:0px;}.css-1a9krmi>.helper-section-item:last-of-type{border-bottom:0;padding-bottom:24px;}</style><div class="css-1a9krmi"><div class="css-1sdjll7"><div class="css-18955fu">Connect</div><style data-emotion="css 1l423vo">.css-1l423vo{padding-left:8px;padding-right:8px;padding-top:10px;padding-bottom:10px;margin-left:-8px;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;border-radius:8px;line-height:16px;-webkit-transition:background 0.3s ease-out;transition:background 0.3s ease-out;margin-bottom:4px;margin-right:-8px;}@media screen and (min-width: 1024px){.css-1l423vo{margin-bottom:12px;}}.css-1l423vo .menu-title{font-size:14px;line-height:14px;}@media screen and (min-width: 1024px){.css-1l423vo .menu-title{font-size:16px;line-height:16px;}}.css-1l423vo:hover{background:#fafbfc;}</style><style data-emotion="css qk955r">.css-qk955r{font-family:Euclid Circular A;font-weight:500;cursor:pointer;-webkit-text-decoration:none;text-decoration:none;display:inline-block;font-size:16px;line-height:32px;color:#006CFA;padding-left:8px;padding-right:8px;padding-top:10px;padding-bottom:10px;margin-left:-8px;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;border-radius:8px;line-height:16px;-webkit-transition:background 0.3s ease-out;transition:background 0.3s ease-out;margin-bottom:4px;margin-right:-8px;}.css-qk955r:hover{-webkit-text-decoration:none;text-decoration:none;}@media screen and (min-width: 1024px){.css-qk955r{margin-bottom:12px;}}.css-qk955r .menu-title{font-size:14px;line-height:14px;}@media screen and (min-width: 1024px){.css-qk955r .menu-title{font-size:16px;line-height:16px;}}.css-qk955r:hover{background:#fafbfc;}</style><a tabIndex="0" href="https://www.mongodb.com/developer/" target="_self" data-track="true" class="css-qk955r"><span class="css-1gdkn91"><span class="textlink-default-text-class css-pbhol6"><img src="https://webimages.mongodb.com/_com_assets/icons/atlas_product_family.svg" alt="atlas_product_family" class=" css-6orj5s" /><span class="css-x4n4mc"><span class="menu-title">Developer Center</span><span class="css-mmbp4l">Explore a wide range of developer resources</span></span></span></span></a><a tabIndex="0" href="https://www.mongodb.com/community/" target="_self" data-track="true" class="css-qk955r"><span class="css-1gdkn91"><span class="textlink-default-text-class css-pbhol6"><img src="https://webimages.mongodb.com/_com_assets/icons/general_events_ask_the_experts.svg" alt="general_events_ask_the_experts" class=" css-6orj5s" /><span class="css-x4n4mc"><span class="menu-title">Community</span><span class="css-mmbp4l">Join a global community of developers</span></span></span></span></a><a tabIndex="0" href="https://learn.mongodb.com/" target="_self" data-track="true" class="css-qk955r"><span class="css-1gdkn91"><span class="textlink-default-text-class css-pbhol6"><img src="https://webimages.mongodb.com/_com_assets/icons/general_content_tutorial.svg" alt="general_content_tutorial" class=" css-6orj5s" /><span class="css-x4n4mc"><span class="menu-title">Courses and Certification</span><span class="css-mmbp4l">Learn for free from MongoDB</span></span></span></span></a><a tabIndex="0" href="https://www.mongodb.com/events" target="_self" data-track="true" class="css-qk955r"><span class="css-1gdkn91"><span class="textlink-default-text-class css-pbhol6"><img src="https://webimages.mongodb.com/_com_assets/icons/general_events_session.svg" alt="general_events_session" class=" css-6orj5s" /><span class="css-x4n4mc"><span class="menu-title">Events and Webinars</span><span class="css-mmbp4l">Find an event or webinar near you</span></span></span></span></a></div></div></div></div></div></li><li class="header-nav-menu-item css-37iurc"><button tabIndex="0" data-track="true" class="css-jxj2lf"><span class="css-1edz58y"><span class="textlink-default-text-class css-aq3x7l">Solutions<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" class="nav-chevron"><path fill-rule="evenodd" clip-rule="evenodd" d="M4.18362 5.76804C4.29823 5.65778 4.45193 5.59753 4.61093 5.60053C4.76994 5.60353 4.92126 5.66953 5.03162 5.78404L7.99962 8.93444L10.9676 5.78404C11.0216 5.72457 11.0869 5.67653 11.1598 5.64277C11.2326 5.609 11.3115 5.59021 11.3918 5.5875C11.472 5.58479 11.552 5.59821 11.627 5.62698C11.7019 5.65575 11.7704 5.69927 11.8282 5.75497C11.8861 5.81066 11.9321 5.87741 11.9637 5.95124C11.9953 6.02507 12.0117 6.10449 12.012 6.18478C12.0123 6.26508 11.9965 6.34463 11.9656 6.41871C11.9346 6.49278 11.889 6.55989 11.8316 6.61604L8.43162 10.216C8.37565 10.2741 8.30855 10.3203 8.23432 10.3519C8.1601 10.3834 8.08028 10.3997 7.99962 10.3997C7.91897 10.3997 7.83915 10.3834 7.76492 10.3519C7.6907 10.3203 7.62359 10.2741 7.56762 10.216L4.16762 6.61604C4.05736 6.50144 3.99711 6.34774 4.00011 6.18873C4.00311 6.02972 4.06911 5.87841 4.18362 5.76804Z" fill="inherit"></path></svg></span></span></button><div class="css-1e4twiw"><div class="css-9ph9zl"><div class="css-1t6t43"><div class="css-x20kx8"><style data-emotion="css 10ejslm">.css-10ejslm{width:192px;max-width:192px;margin-right:32px;}</style><div class="css-10ejslm"><div class="css-1sdjll7"><div class="css-18955fu">Use cases</div><a tabIndex="0" href="https://www.mongodb.com/solutions/use-cases/artificial-intelligence" target="_self" data-track="true" class="css-19929cr"><span class="css-38hmqx"><span class="textlink-default-text-class css-pbhol6"><span class="css-x4n4mc"><span class="menu-title">Artificial Intelligence</span></span></span></span></a><a tabIndex="0" href="https://www.mongodb.com/solutions/use-cases/payments" target="_self" data-track="true" class="css-19929cr"><span class="css-38hmqx"><span class="textlink-default-text-class css-pbhol6"><span class="css-x4n4mc"><span class="menu-title">Payments</span></span></span></span></a><a tabIndex="0" href="https://www.mongodb.com/solutions/use-cases/serverless" target="_self" data-track="true" class="css-19929cr"><span class="css-38hmqx"><span class="textlink-default-text-class css-pbhol6"><span class="css-x4n4mc"><span class="menu-title">Serverless Development</span></span></span></span></a><a tabIndex="0" href="https://www.mongodb.com/solutions/use-cases/gaming" target="_self" data-track="true" class="css-19929cr"><span class="css-38hmqx"><span class="textlink-default-text-class css-pbhol6"><span class="css-x4n4mc"><span class="menu-title">Gaming</span></span></span></span></a></div></div><style data-emotion="css 12h7cp9">.css-12h7cp9{width:192px;max-width:192px;margin-right:10px;}</style><div class="css-12h7cp9"><div class="css-1sdjll7"><div class="css-18955fu">Industries</div><a tabIndex="0" href="https://www.mongodb.com/solutions/industries/financial-services" target="_self" data-track="true" class="css-19929cr"><span class="css-38hmqx"><span class="textlink-default-text-class css-pbhol6"><span class="css-x4n4mc"><span class="menu-title">Financial Services</span></span></span></span></a><a tabIndex="0" href="https://www.mongodb.com/solutions/industries/telecommunications" target="_self" data-track="true" class="css-19929cr"><span class="css-38hmqx"><span class="textlink-default-text-class css-pbhol6"><span class="css-x4n4mc"><span class="menu-title">Telecommunications</span></span></span></span></a><a tabIndex="0" href="https://www.mongodb.com/solutions/industries/healthcare" target="_self" data-track="true" class="css-19929cr"><span class="css-38hmqx"><span class="textlink-default-text-class css-pbhol6"><span class="css-x4n4mc"><span class="menu-title">Healthcare</span></span></span></span></a><a tabIndex="0" href="https://www.mongodb.com/solutions/industries/retail" target="_self" data-track="true" class="css-19929cr"><span class="css-38hmqx"><span class="textlink-default-text-class css-pbhol6"><span class="css-x4n4mc"><span class="menu-title">Retail</span></span></span></span></a><a tabIndex="0" href="https://www.mongodb.com/solutions/industries/public-sector" target="_self" data-track="true" class="css-19929cr"><span class="css-38hmqx"><span class="textlink-default-text-class css-pbhol6"><span class="css-x4n4mc"><span class="menu-title">Public Sector</span></span></span></span></a><a tabIndex="0" href="https://www.mongodb.com/solutions/industries/manufacturing" target="_self" data-track="true" class="css-19929cr"><span class="css-38hmqx"><span class="textlink-default-text-class css-pbhol6"><span class="css-x4n4mc"><span class="menu-title">Manufacturing</span></span></span></span></a></div></div></div><div class="css-1aq7tsw"><div class="css-9vd5ud"><a tabIndex="0" href="https://www.mongodb.com/solutions/solutions-library" target="_self" data-track="true" class="css-7ejzmr"><span class="css-1f7scwv"><span class="textlink-default-text-class css-pbhol6"><span class="css-10mejol"><span class="css-x4n4mc"><span class="menu-title">Solutions Library</span><span class="menu-description">Organized and tailored solutions to kick-start projects</span></span></span><svg viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" class=" css-vvcvyi"><title>arrow-right</title><path d="M17.3749 6.66663L26.6668 16M26.6668 16L17.3749 25.3333M26.6668 16H5.3335" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></span></span></a></div></div></div><div class="css-1p2ltr0"><div class="css-15n20pz"><div class="helper-section-item css-lkbdt0"><div class="css-1lxjpys">Developer Data Platform</div><style data-emotion="css jnux5f">.css-jnux5f{font-weight:400;font-size:12px;margin-top:8px;color:#5d6c74;line-height:15px;}</style><div class="css-jnux5f">Accelerate innovation at scale</div><div class="css-7ysqtr"><style data-emotion="css 1kx7zhg">.css-1kx7zhg{font-size:12px;line-height:12px;color:#006CFA;width:100%;}.css-1kx7zhg svg{-webkit-transition:-webkit-transform 0.2s;transition:transform 0.2s;}.css-1kx7zhg:hover svg{-webkit-transform:translateX(8px);-moz-transform:translateX(8px);-ms-transform:translateX(8px);transform:translateX(8px);}</style><style data-emotion="css d0mgft">.css-d0mgft{font-family:Euclid Circular A;font-weight:500;cursor:pointer;-webkit-text-decoration:none;text-decoration:none;display:inline-block;font-size:16px;line-height:32px;color:#006CFA;font-size:12px;line-height:12px;color:#006CFA;width:100%;}.css-d0mgft:hover{-webkit-text-decoration:none;text-decoration:none;}.css-d0mgft svg{-webkit-transition:-webkit-transform 0.2s;transition:transform 0.2s;}.css-d0mgft:hover svg{-webkit-transform:translateX(8px);-moz-transform:translateX(8px);-ms-transform:translateX(8px);transform:translateX(8px);}</style><a tabIndex="0" href="https://www.mongodb.com/solutions/developer-data-platform" target="_self" data-track="true" class="css-d0mgft"><style data-emotion="css x0qvfd">.css-x0qvfd{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:left;}.css-x0qvfd .textlink-default-text-class{color:#006CFA;line-height:12px;border-bottom:0;font-size:12px;font-weight:500;width:auto;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.css-x0qvfd .textlink-default-text-class:hover{border-bottom:0;}@media screen and (min-width: 1024px){.css-x0qvfd .textlink-default-text-class{width:100%;}}.css-x0qvfd .textlink-default-text-class svg{stroke:#006CFA;margin-left:8px;}.css-x0qvfd .textlink-arrow-class{color:#001E2B;line-height:32px;}.css-x0qvfd .textlink-link-icon-class{color:#001E2B;line-height:32px;}</style><span class="css-x0qvfd"><span class="textlink-default-text-class css-pbhol6">Learn more<svg viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" class=" css-vvcvyi"><title>arrow-right</title><path d="M17.3749 6.66663L26.6668 16M26.6668 16L17.3749 25.3333M26.6668 16H5.3335" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></span></span></a></div></div><div class="helper-section-item css-lkbdt0"><div class="css-1lxjpys">Startups and AI Innovators</div><div class="css-jnux5f">For world-changing ideas and AI pioneers</div><div class="css-7ysqtr"><a tabIndex="0" href="https://www.mongodb.com/solutions/startups" target="_self" data-track="true" class="css-d0mgft"><span class="css-x0qvfd"><span class="textlink-default-text-class css-pbhol6">Learn more<svg viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" class=" css-vvcvyi"><title>arrow-right</title><path d="M17.3749 6.66663L26.6668 16M26.6668 16L17.3749 25.3333M26.6668 16H5.3335" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></span></span></a></div></div><div class="helper-section-item css-lkbdt0"><div class="css-1lxjpys">Customer Case Studies</div><div class="css-jnux5f">Hear directly from our users</div><div class="css-7ysqtr"><a tabIndex="0" href="https://www.mongodb.com/solutions/customer-case-studies" target="_self" data-track="true" class="css-d0mgft"><span class="css-x0qvfd"><span class="textlink-default-text-class css-pbhol6">See Stories<svg viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" class=" css-vvcvyi"><title>arrow-right</title><path d="M17.3749 6.66663L26.6668 16M26.6668 16L17.3749 25.3333M26.6668 16H5.3335" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></span></span></a></div></div></div></div></div></div></li><li class="header-nav-menu-item css-37iurc"><button tabIndex="0" data-track="true" class="css-jxj2lf"><span class="css-1edz58y"><span class="textlink-default-text-class css-aq3x7l">Company<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" class="nav-chevron"><path fill-rule="evenodd" clip-rule="evenodd" d="M4.18362 5.76804C4.29823 5.65778 4.45193 5.59753 4.61093 5.60053C4.76994 5.60353 4.92126 5.66953 5.03162 5.78404L7.99962 8.93444L10.9676 5.78404C11.0216 5.72457 11.0869 5.67653 11.1598 5.64277C11.2326 5.609 11.3115 5.59021 11.3918 5.5875C11.472 5.58479 11.552 5.59821 11.627 5.62698C11.7019 5.65575 11.7704 5.69927 11.8282 5.75497C11.8861 5.81066 11.9321 5.87741 11.9637 5.95124C11.9953 6.02507 12.0117 6.10449 12.012 6.18478C12.0123 6.26508 11.9965 6.34463 11.9656 6.41871C11.9346 6.49278 11.889 6.55989 11.8316 6.61604L8.43162 10.216C8.37565 10.2741 8.30855 10.3203 8.23432 10.3519C8.1601 10.3834 8.08028 10.3997 7.99962 10.3997C7.91897 10.3997 7.83915 10.3834 7.76492 10.3519C7.6907 10.3203 7.62359 10.2741 7.56762 10.216L4.16762 6.61604C4.05736 6.50144 3.99711 6.34774 4.00011 6.18873C4.00311 6.02972 4.06911 5.87841 4.18362 5.76804Z" fill="inherit"></path></svg></span></span></button><div class="css-1e4twiw"><div class="css-9ph9zl"><div class="css-1t6t43"><div class="css-x20kx8"><div class="css-cc0pau"><style data-emotion="css 1ydjkoa">.css-1ydjkoa{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex:1;-ms-flex:1;flex:1;padding-bottom:10px;margin-top:-10px;}</style><div class="css-1ydjkoa"><a tabIndex="0" href="https://www.mongodb.com/company/careers" target="_self" data-track="true" class="css-19929cr"><span class="css-38hmqx"><span class="textlink-default-text-class css-pbhol6"><span class="css-x4n4mc"><span class="menu-title">Careers</span><span class="css-mmbp4l">Start your next adventure</span></span></span></span></a><a tabIndex="0" href="https://www.mongodb.com/blog" target="_self" data-track="true" class="css-19929cr"><span class="css-38hmqx"><span class="textlink-default-text-class css-pbhol6"><span class="css-x4n4mc"><span class="menu-title">Blog</span><span class="css-mmbp4l">Read articles and announcements</span></span></span></span></a><a tabIndex="0" href="https://www.mongodb.com/company/newsroom" target="_self" data-track="true" class="css-19929cr"><span class="css-38hmqx"><span class="textlink-default-text-class css-pbhol6"><span class="css-x4n4mc"><span class="menu-title">Newsroom</span><span class="css-mmbp4l">Read press releases and news stories</span></span></span></span></a></div></div><div class="css-eho906"><div class="css-1ydjkoa"><a tabIndex="0" href="https://www.mongodb.com/company/partners" target="_self" data-track="true" class="css-19929cr"><span class="css-38hmqx"><span class="textlink-default-text-class css-pbhol6"><span class="css-x4n4mc"><span class="menu-title">Partners</span><span class="css-mmbp4l">Learn about our partner ecosystem</span></span></span></span></a><a tabIndex="0" href="https://www.mongodb.com/company/leadership" target="_self" data-track="true" class="css-19929cr"><span class="css-38hmqx"><span class="textlink-default-text-class css-pbhol6"><span class="css-x4n4mc"><span class="menu-title">Leadership</span><span class="css-mmbp4l">Meet our executive team</span></span></span></span></a><a tabIndex="0" href="https://www.mongodb.com/company" target="_self" data-track="true" class="css-19929cr"><span class="css-38hmqx"><span class="textlink-default-text-class css-pbhol6"><span class="css-x4n4mc"><span class="menu-title">Company</span><span class="css-mmbp4l">Learn more about who we are</span></span></span></span></a></div></div></div><div class="css-1aq7tsw"></div></div><div class="css-1p2ltr0"><div class="css-15n20pz"><div class="helper-section-item css-lkbdt0"><div class="css-1lxjpys">Contact Us</div><div class="css-jnux5f">Reach out to MongoDB</div><div class="css-7ysqtr"><a tabIndex="0" href="https://www.mongodb.com/company/contact" target="_self" data-track="true" class="css-d0mgft"><span class="css-x0qvfd"><span class="textlink-default-text-class css-pbhol6">Let’s chat<svg viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" class=" css-vvcvyi"><title>arrow-right</title><path d="M17.3749 6.66663L26.6668 16M26.6668 16L17.3749 25.3333M26.6668 16H5.3335" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></span></span></a></div></div><div class="helper-section-item css-lkbdt0"><div class="css-1lxjpys">Investors</div><div class="css-jnux5f">Visit our investor portal</div><div class="css-7ysqtr"><a tabIndex="0" href="https://investors.mongodb.com/" target="_self" data-track="true" class="css-d0mgft"><span class="css-x0qvfd"><span class="textlink-default-text-class css-pbhol6">Learn more<svg viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" class=" css-vvcvyi"><title>arrow-right</title><path d="M17.3749 6.66663L26.6668 16M26.6668 16L17.3749 25.3333M26.6668 16H5.3335" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></span></span></a></div></div></div></div></div></div></li><li class="header-nav-menu-item css-37iurc"><style data-emotion="css 1h3lf6v">.css-1h3lf6v{font-family:Euclid Circular A;font-weight:300;cursor:pointer;-webkit-text-decoration:none;text-decoration:none;display:inline-block;font-size:16px;line-height:32px;color:#21313c;font-family:Euclid Circular A,Noto Sans KR,Noto Sans SC,Noto Sans JP;position:relative;height:95px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-text-decoration:none;text-decoration:none;letter-spacing:unset;min-width:calc(64px + 4px);-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;cursor:pointer;white-space:nowrap;}.css-1h3lf6v:hover{-webkit-text-decoration:none;text-decoration:none;}.css-1h3lf6v .nav-chevron{margin-left:2px;fill:#5d6c74;-webkit-transition:-webkit-transform 250ms,fill 200ms;transition:transform 250ms,fill 200ms;}.css-1h3lf6v:hover{-webkit-text-decoration:none;text-decoration:none;}.css-1h3lf6v:focus-visible{outline:-webkit-focus-ring-color auto 1px;}</style><a tabIndex="0" href="https://www.mongodb.com/pricing" data-track="true" class="css-1h3lf6v"><span class="css-1edz58y"><style data-emotion="css nlb0hz">.css-nlb0hz{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:16px;line-height:32px;color:#21313c;}.css-nlb0hz:hover{-webkit-text-decoration:none;text-decoration:none;}</style><span class="textlink-default-text-class css-nlb0hz">Pricing</span></span></a></li></ul><style data-emotion="css 1pjb6cd">.css-1pjb6cd{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}</style><style data-emotion="css n8sm7x">.css-n8sm7x{box-sizing:border-box;margin:0;min-width:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}</style><div class="css-n8sm7x"><style data-emotion="css a59hv0">.css-a59hv0{border:none;background:none;outline:none;margin-right:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;cursor:pointer;z-index:1;height:95px;width:20px;}@media screen and (min-width: 1024px) and (max-width: 1280px){.css-a59hv0{width:24px;height:24px;}}.css-a59hv0>img{max-width:none;width:20px;height:20px;}@media screen and (min-width: 1024px) and (max-width: 1280px){.css-a59hv0>img{width:24px;height:24px;}}.css-a59hv0:focus-visible{outline:-webkit-focus-ring-color auto 1px;}</style><button aria-label="Open Search" class="header-desktop-button css-a59hv0"><img alt="Search" src="https://webimages.mongodb.com/_com_assets/cms/lyekm5ifrkqjod0wu-search_updated.svg?auto=format%252Ccompress" width="20" height="20" /></button><style data-emotion="css qcba1e">.css-qcba1e{letter-spacing:unset;margin-right:32px;-webkit-text-decoration:none;text-decoration:none;}@media screen and (max-width: 1280px){.css-qcba1e{display:none;}}</style><style data-emotion="css 1rolaoe">.css-1rolaoe{font-family:Euclid Circular A;font-weight:300;cursor:pointer;-webkit-text-decoration:none;text-decoration:none;display:inline-block;font-size:16px;line-height:32px;color:#21313c;letter-spacing:unset;margin-right:32px;-webkit-text-decoration:none;text-decoration:none;}.css-1rolaoe:hover{-webkit-text-decoration:none;text-decoration:none;}@media screen and (max-width: 1280px){.css-1rolaoe{display:none;}}</style><a tabIndex="0" href="https://www.mongodb.com/services/support" data-track="true" class="header-desktop-link css-1rolaoe"><style data-emotion="css 1s6g5p9">.css-1s6g5p9{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:left;}.css-1s6g5p9 .textlink-default-text-class{color:#001E2B;border-bottom:0;-webkit-transition:color 200ms,text-shadow 200ms;transition:color 200ms,text-shadow 200ms;}.css-1s6g5p9 .textlink-default-text-class:hover{color:#00684A;text-shadow:0 0 1px rgba(0, 104, 74, 0.5);border-bottom:0;}@media screen and (max-width: 1416px){.css-1s6g5p9 .textlink-default-text-class{font-size:15px;line-height:15px;}}.css-1s6g5p9 .textlink-arrow-class{color:#00AA57;}.css-1s6g5p9 .textlink-link-icon-class{color:#21313c;}.css-1s6g5p9:hover .textlink-text-class{color:#00AA57;-webkit-animation:linear 1 alternate;-webkit-animation-name:color;-webkit-animation-duration:300ms;}@-webkit-keyframes color{0%{color:#061621;}100%{left:green50;}}.css-1s6g5p9:hover .textlink-arrow-class{left:0;-webkit-animation:linear 1 alternate;-webkit-animation-name:runLink;-webkit-animation-duration:300ms;}@-webkit-keyframes runTitle{0%{left:0;}33%{left:25px;}66%{left:-25px;}100%{left:0;}}@-webkit-keyframes runLink{0%{left:-100px;}100%{left:0;}}</style><span class="css-1s6g5p9"><span class="textlink-default-text-class css-nlb0hz">Support</span></span></a><style data-emotion="css 1tokipu">.css-1tokipu{letter-spacing:unset;margin-right:40px;-webkit-text-decoration:none;text-decoration:none;}@media screen and (max-width: 1280px){.css-1tokipu{display:none;}}</style><style data-emotion="css 1l1k5">.css-1l1k5{font-family:Euclid Circular A;font-weight:300;cursor:pointer;-webkit-text-decoration:none;text-decoration:none;display:inline-block;font-size:16px;line-height:32px;color:#21313c;letter-spacing:unset;margin-right:40px;-webkit-text-decoration:none;text-decoration:none;}.css-1l1k5:hover{-webkit-text-decoration:none;text-decoration:none;}@media screen and (max-width: 1280px){.css-1l1k5{display:none;}}</style><a tabIndex="0" href="https://account.mongodb.com/account/login" data-track="true" class="header-desktop-link css-1l1k5"><span class="css-1s6g5p9"><span class="textlink-default-text-class css-nlb0hz">Sign In</span></span></a><span class="css-1myrko"><style data-emotion="css vh2atz">.css-vh2atz{width:100%;padding-top:calc(16px - 1px);padding-bottom:calc(16px - 1px);padding-left:24px;padding-right:24px;font-family:Euclid Circular A;font-size:16px;font-weight:500;border-radius:4px;line-height:16px;border:solid;border-width:1px;-webkit-text-decoration:none;text-decoration:none;display:inline-block;gap:8px;-webkit-transition:border-radius .15s;transition:border-radius .15s;color:#001E2B;stroke:#001E2B;fill:#001E2B;border-color:#001E2B;background-color:#00ED64;margin-right:0;letter-spacing:0.16px;}@media screen and (min-width: 768px){.css-vh2atz{width:unset;}}.css-vh2atz:hover{cursor:pointer;-webkit-text-decoration:none;text-decoration:none;border-radius:40px;}.css-vh2atz:active,.css-vh2atz:focus{border-radius:999px;box-shadow:0px 0px 0px 3px rgba(242, 197, 238, 1);-webkit-transition:.1s;transition:.1s;}.css-vh2atz:disabled,.css-vh2atzdisabled:hover{background-color:#b8c4c2;cursor:not-allowed;color:#5d6c74;stroke:#5d6c74;fill:#5d6c74;box-shadow:0px 0px 0px 0px #000000;}@media screen and (max-width: 1280px){.css-vh2atz{display:none;}}</style><a tabIndex="0" href="https://www.mongodb.com/cloud/atlas/register" data-track="true" class="header-desktop-button css-vh2atz">Try Free</a></span><style data-emotion="css 1rurqt3">.css-1rurqt3{position:relative;}@media screen and (min-width: 1281px){.css-1rurqt3{display:none;}}</style><div class="css-1rurqt3"><style data-emotion="css 13aqjzy">.css-13aqjzy{display:inline-block;}</style><div class="css-13aqjzy"><style data-emotion="css 165p6md">.css-165p6md{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;border:solid;border-width:0;border-radius:50%;-webkit-transition:.15s;transition:.15s;background-color:transparent;stroke:#001E2B;fill:#001E2B;border-style:none;border-color:#00684A;width:36px;height:36px;cursor:pointer;}@media screen and (min-width: 1024px){.css-165p6md{border-style:solid;}}.css-165p6md:hover{cursor:pointer;stroke:#023430;fill:#023430;opacity:1;}@media screen and (min-width: 1024px){.css-165p6md:hover{background-color:#00684A;stroke:#ffffff;fill:#ffffff;opacity:1;}}.css-165p6md:active{box-shadow:0px 0px 0px 3px rgba(242, 197, 238, 1);-webkit-transition:.1s;transition:.1s;}.css-165p6md:disabled,.css-165p6mddisabled:hover{cursor:not-allowed;background-color:transparent;stroke:#00684A;fill:#00684A;box-shadow:0px 0px 0px 0px #000000;opacity:0.5;}.css-165p6md.active,.css-165p6md:hover{background:#e7eeec;fill:#001E2B;stroke:#001E2B;}.css-165p6md>svg{width:24px;height:24px;}</style><button tabIndex="0" data-track="true" class=" css-165p6md"><style data-emotion="css uqf5cc">.css-uqf5cc{width:16px;height:16px;stroke:inherit;fill:none;stroke-width:2px;}</style><svg viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" class=" css-uqf5cc"><title>menu-vertical</title><path d="M17.3332 5.36936C17.3332 6.12564 16.7362 6.73872 15.9998 6.73872C15.2635 6.73872 14.6665 6.12564 14.6665 5.36936C14.6665 4.61308 15.2635 4 15.9998 4C16.7362 4 17.3332 4.61308 17.3332 5.36936Z" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path><path d="M17.3332 16C17.3332 16.7563 16.7362 17.3694 15.9998 17.3694C15.2635 17.3694 14.6665 16.7563 14.6665 16C14.6665 15.2437 15.2635 14.6306 15.9998 14.6306C16.7362 14.6306 17.3332 15.2437 17.3332 16Z" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path><path d="M17.3332 26.6306C17.3332 27.3869 16.7362 28 15.9998 28C15.2635 28 14.6665 27.3869 14.6665 26.6306C14.6665 25.8744 15.2635 25.2613 15.9998 25.2613C16.7362 25.2613 17.3332 25.8744 17.3332 26.6306Z" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div></div></div></div></div></div><style data-emotion="css vf2rex">.css-vf2rex{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}@media screen and (min-width: 1024px){.css-vf2rex{display:none;}}</style><style data-emotion="css 10o52y3">.css-10o52y3{background-color:#ffffff;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-family:Euclid Circular A,Noto Sans KR,Noto Sans SC,Noto Sans JP;font-weight:300;overflow:hidden;height:56px;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;width:100%;z-index:999;position:relative;padding-left:24px;padding-right:24px;border-bottom:1px solid #b8c4c2;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}@media screen and (min-width: 1024px){.css-10o52y3{display:none;}}</style><style data-emotion="css 6easlo">.css-6easlo{box-sizing:border-box;margin:0;min-width:0;background-color:#ffffff;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-family:Euclid Circular A,Noto Sans KR,Noto Sans SC,Noto Sans JP;font-weight:300;overflow:hidden;height:56px;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;width:100%;z-index:999;position:relative;padding-left:24px;padding-right:24px;border-bottom:1px solid #b8c4c2;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}@media screen and (min-width: 1024px){.css-6easlo{display:none;}}</style><div class="css-6easlo"><style data-emotion="css knbtqt">.css-knbtqt{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;font-size:14px;height:24px;width:95px;min-width:95px;max-width:none;}@media screen and (min-width: 768px){.css-knbtqt{min-width:126px;width:126px;height:32px;}}</style><a href="https://www.mongodb.com" class="css-knbtqt"><style data-emotion="css 3el0ca">.css-3el0ca{width:95px;min-width:100px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;font-size:14px;height:24px;width:95px;min-width:95px;max-width:none;}@media screen and (min-width: 768px){.css-3el0ca{min-width:126px;width:126px;height:32px;}}</style><img src="https://webimages.mongodb.com/_com_assets/cms/kuyjf3vea2hg34taa-horizontal_default_slate_blue.svg?auto=format%252Ccompress" alt="MongoDB logo" width="95px" height="24px" class="css-3el0ca" /></a><style data-emotion="css sk3y9d">.css-sk3y9d{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;z-index:1;}</style><style data-emotion="css 85rf0r">.css-85rf0r{box-sizing:border-box;margin:0;min-width:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;z-index:1;}</style><div class="css-85rf0r"><style data-emotion="css 1a7pihi">.css-1a7pihi{border:none;background:none;outline:none;margin-right:20px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;cursor:pointer;z-index:1;height:95px;width:16px;}.css-1a7pihi>img{width:16px;height:16px;max-width:none;}.css-1a7pihi:focus-visible{outline:-webkit-focus-ring-color auto 1px;}</style><button aria-label="Open Search" class="css-1a7pihi"><img alt="Search" src="https://webimages.mongodb.com/_com_assets/cms/lyekm5ifrkqjod0wu-search_updated.svg?auto=format%252Ccompress" width="16" height="16" /></button><style data-emotion="css 1mpxh5k">.css-1mpxh5k{border:none;background:none;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;cursor:pointer;height:56px;padding-left:2px;padding-right:2px;}</style><button aria-label="Open Links" class="css-1mpxh5k"><style data-emotion="css 1dd6xh2">.css-1dd6xh2>rect{-webkit-transition:all 0.3s ease-in-out,opacity 0.2s linear 0.1s;transition:all 0.3s ease-in-out,opacity 0.2s linear 0.1s;transform-origin:50% 50%;}.css-1dd6xh2>rect#top-line{-webkit-transform:translateY(-4.375px);-moz-transform:translateY(-4.375px);-ms-transform:translateY(-4.375px);transform:translateY(-4.375px);}.css-1dd6xh2>rect#bottom-line{-webkit-transform:translateY(4.375px);-moz-transform:translateY(4.375px);-ms-transform:translateY(4.375px);transform:translateY(4.375px);}.css-1dd6xh2.animating #top-line,.css-1dd6xh2.active #top-line{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);}.css-1dd6xh2.animating #middle-line,.css-1dd6xh2.active #middle-line{opacity:0;}.css-1dd6xh2.animating #bottom-line,.css-1dd6xh2.active #bottom-line{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);}.css-1dd6xh2.active:not(.animating) #top-line{-webkit-transform:translateY(0) rotate(-45deg);-moz-transform:translateY(0) rotate(-45deg);-ms-transform:translateY(0) rotate(-45deg);transform:translateY(0) rotate(-45deg);}.css-1dd6xh2.active:not(.animating) #middle-line{opacity:0;}.css-1dd6xh2.active:not(.animating) #bottom-line{-webkit-transform:translateY(0) rotate(-135deg);-moz-transform:translateY(0) rotate(-135deg);-ms-transform:translateY(0) rotate(-135deg);transform:translateY(0) rotate(-135deg);}</style><svg width="16" height="10" viewBox="0 0 16 10" xmlns="http://www.w3.org/2000/svg" overflow="visible" class=" css-1dd6xh2"><rect id="top-line" x="0.5" y="4.375" rx="0.625" ry="0.625" width="15" height="1.25" fill="#21313C"></rect><rect id="middle-line" x="0.5" y="4.375" rx="0.625" ry="0.625" width="15" height="1.25" fill="#21313C"></rect><rect id="bottom-line" x="0.5" y="4.375" rx="0.625" ry="0.625" width="15" height="1.25" fill="#21313C"></rect></svg></button></div></div></nav></div><div class="relative"><div class="absolute w-full h-full overflow-hidden" style="z-index: -1;"><div style="background-position: center; background-repeat: no-repeat; background-size: cover; z-index: -1;" class="lazyload absolute w-full h-full"></div></div><header class="relative overflow-hidden fl fl-center fl-col fl-wrap h-min-340"><div class="absolute w-full h-full"><div style="background-position: center; background-repeat: no-repeat; background-size: cover;" data-bg="https://webassets.mongodb.com/_com_assets/cms/header-au039oiqsr.svg" class="lazyload absolute w-full h-full"></div></div><div class="relative w-full w-max-770 p-20 txt-center"><h1 class="m-t-0 fnt-medium dark-green"><span>A Guide to ACID Properties in Database Management Systems</span></h1><div class="fl fl-center w-full"><a class="reset" target="_blank" href="https://www.mongodb.com/cloud/atlas/register"><button class="relative btn-green btn-sm m-10">Get started free</button></a></div></div></header></div><div style="background: auto;" class="Article__ArticleStyles-sc-14w82yl-0 obHHn relative w-full "><div class="relative w-full w-max-770 p-h-15 p-v-25 m-auto"><div><p>The use of real-time applications and Internet of Things (IoT) devices, plus the exponential growth of unstructured data assets, has organizations transitioning to NoSQL databases in ever-increasing numbers. In fact, the NoSQL market is anticipated to reach US $74.5 billion by 2032, exhibiting a growth rate (CAGR) of 24.9% from 2024 to 2032 (IMARC group, 2024).</p><p>This growth isn't surprising given the ability of NoSQL database management systems (DBMS) to effectively manage large, diverse datasets and the associated big data analysis required. However, many still believe that NoSQL DBMS aren't able to address a key requirement of many organizations — ACID transactions management and compliance. The good news is that some NoSQL DBMS absolutely can!</p><p>In this article, we'll discuss what ACID transactions are, ACID transaction properties, why these transactions are important, and an ACID transaction example in a NoSQL DBMS.</p><br /><p><strong>Table of contents</strong></p><ul class="bullets"><li><a target="_self" href="what-are-acid-transactions">What are ACID transactions?</a></li><li><a target="_self" href="#why-are-acid-transactions-important">Why are ACID transactions important?</a></li><li><a target="_self" href="#acid-transaction-example-in-dbms">ACID transactions example in DBMS</a></li><li><a target="_self" href="#how-do-acid-transactions-work-in-mongodb">How do ACID transactions work in MongoDB?</a></li><li><a target="_self" href="#when-should-i-use-mongodb-multidocument-transactions">When should I use MongoDB multi-document transactions?</a></li><li><a target="_self" href="#what-are-the-best-practices-for-transactions-in-mongodb">What are the best practices for transactions in MongoDB?</a></li><li><a target="_self" href="#next-steps">Next steps</a></li><li><a target="_self" href="#faqs">FAQs</a></li></ul></div></div></div><div style="background: auto;" class="Article__ArticleStyles-sc-14w82yl-0 obHHn relative w-full "><div class="relative w-full w-max-770 p-h-15 p-v-25 m-auto"><div><h2 id="what-are-acid-transactions" style="font-family: Euclid Circular A; font-weight: 500;">What are ACID transactions?</h2><br /><h3 id="transactions-explained">Transactions explained</h3><p>At their most basic level, database transactions are a group of database read and write operations that have been completed successfully according to DBMS definitions (e.g., defined transaction criteria). There are two main types of transactions:</p><ul class="bullets"><li><p><strong>Single transactions</strong>: A single transaction refers to a series of one or more database operations resulting in one action, completed successfully. Once complete, the transaction is accepted and can be found in a transaction log. A common example of a single transaction is the withdrawal of money from an ATM.</p></li><li><p><strong>Multi-transactions</strong>: A multi-transaction, sometimes called a distributed transaction, consists of multiple, interdependent transactions spread across different databases and systems (e.g., distributed systems). Records of these transactions are also found in a transaction log. An example of these transactions includes transferring money from one account to another or an employer issuing a new employee a security badge with a photo.</p></li></ul><p>It's important to note that some transactions are required to adhere to strict standards of data integrity (e.g., data is complete and correct) and data consistency (e.g., the value is the same across all tables/databases). This is often the case where fiduciary responsibility or regulatory compliance is involved. Examples include commercial banking, investment brokerage, and legal settlements. In these situations, a standard adherence to DBMS definitions is not enough, and ACID transactions are required.</p></div></div></div><div style="background: auto;" class="Article__ArticleStyles-sc-14w82yl-0 obHHn relative w-full "><div class="relative w-full w-max-770 p-h-15 p-v-25 m-auto"><div><h3 id="acid-transactions">ACID transactions</h3><p>ACID is an acronym that stands for atomicity, consistency, isolation, and durability (ACID). Together, ACID properties ensure that a set of database operations (grouped together in a transaction) leave the database in a valid state even in the event of unexpected errors. Further, ACID transactions provide the level of transactional guarantees that many regulatory agencies require.</p><p>Below is a general overview of each ACID transaction element, as well as a description of how a NoSQL document database is able to handle that ACID element. For the purposes of this article, <a target="_target" href="https://www.mongodb.com/products/capabilities/transactions">MongoDB Atlas</a> will be used.</p><br /><h4 id="atomicity">Atomicity</h4><p>Atomicity guarantees that all of the commands that make up a transaction are treated as a single unit and either succeed or fail together. This is important in the event of a system failure or power outage, in that if a transaction wasn't completely processed, it will be discarded and the database maintains its data integrity.</p><br /><u>How MongoDB handles atomicity:</u><p> In MongoDB, a write operation is atomic on the level of a single document, even if the operation modifies multiple embedded documents within a single document. For situations that require atomicity of reads and writes to multiple documents (in a single collection or multiple collections), MongoDB supports distributed transactions, including transactions on replica sets and sharded clusters.</p><br /><h4 id="consistency">Consistency</h4><p>Consistency guarantees that changes made within a transaction are populated across the database system (e.g., nodes) and in alignment with DBMS constraints. If data consistency is going to be negatively impacted by a transaction in an inconsistent state, the entire transaction will fail.</p><u>How MongoDB handles consistency:</u><p> MongoDB gives the flexibility to normalize or duplicate data to optimize applications. If data is duplicated in the schema, the developer must decide how to keep duplicated data consistent across multiple collections. Some applications require duplicated data to be made consistent immediately, whereas other applications can tolerate reading stale data. Examples are illustrated below:</p></div></div></div><div class="relative"><div class="absolute w-full h-full overflow-hidden" style="z-index: -1;"><div style="background-position: center; background-repeat: no-repeat; background-size: cover; z-index: -1;" class="lazyload absolute w-full h-full"></div></div><section class="w-full p-b-20"><div class="w-max-1200 m-auto p-t-20 p-h-20"><h2 class="dark-green txt-center fnt-medium"></h2><p class="txt-center"></p></div><div class="p-h-20"><table class="Table__TableContainer-sc-1025gsh-0 jykCsU hide-lt-800 w-max-1170 m-auto"><thead><tr><th class="dark-green txt-center">Method</th><th class="dark-green txt-center">Description</th><th class="dark-green txt-center">Performance Impact</th><th class="dark-green txt-center">Use</th></tr></thead><tbody class="box-shadow"><tr class="striped"><td class="dark-gray " style="flex: 1; text-align: center;"><a target="_target" href="https://www.mongodb.com/docs/manual/core/transactions/#std-label-transactions">Transactions</a></td><td class="dark-gray " style="flex: 1; text-align: center;"><span>Updates to multiple collections occur in a single atomic operation</span></td><td class="dark-gray " style="flex: 1; text-align: center;"><span>Potentially high, due to read contention</span></td><td class="dark-gray " style="flex: 1; text-align: center;"><span>Your application must always return up-to-date data and can tolerate potential negative performance impact during periods of heavy reads.</span></td></tr><tr class="striped"><td class="dark-gray " style="flex: 1; text-align: center;"><a target="_target" href="https://www.mongodb.com/docs/manual/data-modeling/concepts/embedding-vs-references/#std-label-data-modeling-embedding">Embed related data</a></td><td class="dark-gray " style="flex: 1; text-align: center;"><span>Modify the application schema to embed related data in a single collection.</span></td><td class="dark-gray " style="flex: 1; text-align: center;"><span>Low to moderate, depending on document size and indexes</span></td><td class="dark-gray " style="flex: 1; text-align: center;"><span>Your application always reads and updates the related data at the same time. This solution simplifies your schema and prevents the need for <a target="_target" href="https://www.mongodb.com/docs/manual/reference/operator/aggregation/lookup/#mongodb-pipeline-pipe.-lookup">$lookup</a> operations.</span></td></tr><tr class="striped"><td class="dark-gray " style="flex: 1; text-align: center;"><a target="_target" href="https://www.mongodb.com/docs/atlas/app-services/triggers/database-triggers/">Atlas Database Triggers</a></td><td class="dark-gray " style="flex: 1; text-align: center;"><span>When an update occurs in one collection, triggers automatically update another collection.</span></td><td class="dark-gray " style="flex: 1; text-align: center;"><span>Low to moderate, with potential delays in processing triggered events</span></td><td class="dark-gray " style="flex: 1; text-align: center;"><span>Your application can tolerate reading slightly stale data. Users can potentially see outdated data if they run a query immediately after an update, but before the trigger finishes updating the second collection.</span></td></tr></tbody></table><div class="hide-gt-800" style="margin-left: 2px; margin-right: 2px;"><h4 class="dark-gray" style="font-size: 20px;">Method</h4><table class="Table__TableContainer-sc-1025gsh-0 jykCsU w-full m-auto m-b-40"><thead><tr><th class="dark-green " style="padding: 15px 0;">Description</th></tr></thead><tbody class="mobileTable"><tr class="striped"><td class="black "><a target="_target" href="https://www.mongodb.com/docs/manual/core/transactions/#std-label-transactions">Transactions</a></td><td class="dark-gray " style="flex: 1; text-align: center;"><span>Updates to multiple collections occur in a single atomic operation</span></td></tr><tr class="striped"><td class="black "><a target="_target" href="https://www.mongodb.com/docs/manual/data-modeling/concepts/embedding-vs-references/#std-label-data-modeling-embedding">Embed related data</a></td><td class="dark-gray " style="flex: 1; text-align: center;"><span>Modify the application schema to embed related data in a single collection.</span></td></tr><tr class="striped"><td class="black "><a target="_target" href="https://www.mongodb.com/docs/atlas/app-services/triggers/database-triggers/">Atlas Database Triggers</a></td><td class="dark-gray " style="flex: 1; text-align: center;"><span>When an update occurs in one collection, triggers automatically update another collection.</span></td></tr></tbody></table><table class="Table__TableContainer-sc-1025gsh-0 jykCsU w-full m-auto m-b-40"><thead><tr><th class="dark-green " style="padding: 15px 0;">Performance Impact</th></tr></thead><tbody class="mobileTable"><tr class="striped"><td class="black "><a target="_target" href="https://www.mongodb.com/docs/manual/core/transactions/#std-label-transactions">Transactions</a></td><td class="dark-gray " style="flex: 1; text-align: center;"><span>Potentially high, due to read contention</span></td></tr><tr class="striped"><td class="black "><a target="_target" href="https://www.mongodb.com/docs/manual/data-modeling/concepts/embedding-vs-references/#std-label-data-modeling-embedding">Embed related data</a></td><td class="dark-gray " style="flex: 1; text-align: center;"><span>Low to moderate, depending on document size and indexes</span></td></tr><tr class="striped"><td class="black "><a target="_target" href="https://www.mongodb.com/docs/atlas/app-services/triggers/database-triggers/">Atlas Database Triggers</a></td><td class="dark-gray " style="flex: 1; text-align: center;"><span>Low to moderate, with potential delays in processing triggered events</span></td></tr></tbody></table><table class="Table__TableContainer-sc-1025gsh-0 jykCsU w-full m-auto m-b-40"><thead><tr><th class="dark-green " style="padding: 15px 0;">Use</th></tr></thead><tbody class="mobileTable"><tr class="striped"><td class="black "><a target="_target" href="https://www.mongodb.com/docs/manual/core/transactions/#std-label-transactions">Transactions</a></td><td class="dark-gray " style="flex: 1; text-align: center;"><span>Your application must always return up-to-date data and can tolerate potential negative performance impact during periods of heavy reads.</span></td></tr><tr class="striped"><td class="black "><a target="_target" href="https://www.mongodb.com/docs/manual/data-modeling/concepts/embedding-vs-references/#std-label-data-modeling-embedding">Embed related data</a></td><td class="dark-gray " style="flex: 1; text-align: center;"><span>Your application always reads and updates the related data at the same time. This solution simplifies your schema and prevents the need for <a target="_target" href="https://www.mongodb.com/docs/manual/reference/operator/aggregation/lookup/#mongodb-pipeline-pipe.-lookup">$lookup</a> operations.</span></td></tr><tr class="striped"><td class="black "><a target="_target" href="https://www.mongodb.com/docs/atlas/app-services/triggers/database-triggers/">Atlas Database Triggers</a></td><td class="dark-gray " style="flex: 1; text-align: center;"><span>Your application can tolerate reading slightly stale data. Users can potentially see outdated data if they run a query immediately after an update, but before the trigger finishes updating the second collection.</span></td></tr></tbody></table></div></div></section></div><div style="background: auto;" class="Article__ArticleStyles-sc-14w82yl-0 obHHn relative w-full "><div class="relative w-full w-max-770 p-h-15 p-v-25 m-auto"><div><p><em>Note: Learn more about <a target="_target" href="https://www.mongodb.com/docs/manual/data-modeling/data-consistency/">data consistency</a>.</em></p><br /><h4 id="isolation">Isolation</h4><p>Each transaction is isolated from the other transactions to prevent data conflicts. This also helps database operations in relation to managing multiple entries and multi-level transactions. For example, if two users are trying to modify the same data (or even the same transaction), the DBMS uses a mechanism called a lock manager to suspend other users until the changes being made by the first user are complete.</p><br /><u>How MongoDB handles isolation:</u><p> MongoDB employs a technique called snapshot isolation (e.g., each transaction appears to operate on a personal snapshot of the database taken at the start of the transaction). Transactions can read data from the “snapshot” of data committed at the time the transaction starts, and any conflicting updates will cause the transaction to abort.</p><p>In addition, MongoDB transactions support a <a target="_target" href="https://www.mongodb.com/docs/manual/core/transactions/#transactions-and-read-concern">transaction-level read concern</a> and <a target="_target" href="https://www.mongodb.com/docs/manual/core/transactions/#transactions-and-write-concern">transaction-level write concern</a>. Clients can set an appropriate level of read and write concern, with the most rigorous being snapshot read concern combined with majority write concern. Majority write concern means that the write operations have been durably committed to a calculated majority of the data-bearing nodes (configurable by the developer).</p><br /><h4 id="durability">Durability</h4><p>Durability guarantees that once the transaction completes and changes are written to the database, they are persisted. This ensures that data within the system will persist even in the case of system failures like crashes or power outages. The concept of durability is a key element in data reliability.</p><br /><u>How MongoDB handles durability:</u><p>MongoDB creates an OpLog containing the disk location and bytes changed for each &quot;write.&quot; If there is an unforeseen event (e.g., a power outage) during the writing of the transaction, the OpLog can be used when the system starts again to replay any writes that were not flushed to disk before the shutdown. In addition, operations are changed before written in the OpLog so they're idempotent and can be retried multiple times. Transactions, or &quot;writes,&quot; are flushed to disk roughly every 60 seconds by default.</p></div></div></div><div style="background: auto;" class="Article__ArticleStyles-sc-14w82yl-0 obHHn relative w-full "><div class="relative w-full w-max-770 p-h-15 p-v-25 m-auto"><div><h2 id="why-are-acid-transactions-important" style="font-family: Euclid Circular A; font-weight: 500;">Why are ACID transactions important?</h2><p>ACID transactions help maintain data integrity and reliability, while also ensuring that vital data which is subject to governmental or industry regulation (e.g., bank account, stock portfolio) meet required standards. Further, ACID compliance is often a prerequisite for implementing data replication and achieving high availability in distributed database systems.</p></div></div></div><div style="background: auto;" class="Article__ArticleStyles-sc-14w82yl-0 obHHn relative w-full "><div class="relative w-full w-max-770 p-h-15 p-v-25 m-auto"><div><h2 id="acid-transaction-example-in-dbms" style="font-family: Euclid Circular A; font-weight: 500;">ACID transaction example in DBMS</h2><p>Using the NoSQL document database MongoDB Atlas, here is an example of how ACID multi-document transactions are handled and how ACID transactions guarantee alignment to minimum ACID property standards.</p></div></div></div><div style="background: auto;" class="Article__ArticleStyles-sc-14w82yl-0 obHHn relative w-full "><div class="relative w-full w-max-770 p-h-15 p-v-25 m-auto"><div><h3 id="acid-multi-document-transactions">ACID multi-document transactions</h3><p>Imagine you are building a function to transfer money from one bank account to another where each account is its own record. If money is successfully taken from the source account but never credited to the destination account, a serious accounting problem has been created. Conversely, if the destination account is credited but the source account is never debited, another serious accounting issue occurs.</p><br /><p align center> <img alt="Diagram showing how the ACID properties impact the flow of transferring money from one bank account to another." src="https://webimages.mongodb.com/_com_assets/cms/l5vhrmvicbxj4o8am-image1.png?auto=format%252Ccompress" /> <em>The diagram demonstrates how the ACID properties impact the flow of transferring money from one bank account to another.</em> </p><br /><p>These two write operations have to either both happen or both not happen to keep the system and its data consistent. Further, this means that if any command in the transaction fails, the database must roll back (e.g., undo) all of the changes it had written in the course of the transaction.</p></div></div></div><div style="background: auto;" class="Article__ArticleStyles-sc-14w82yl-0 obHHn relative w-full "><div class="relative w-full w-max-770 p-h-15 p-v-25 m-auto"><div><br /><p align="center"><img alt="code sample from github in partnership with mongodb" src="https://webimages.mongodb.com/_com_assets/cms/lyhjprfyhwrddbgnn-image1.png?auto=format%252Ccompress" /> </p><p><em>Note: To learn more, visit the <a target="_target" href="https://github.com/mongodb-developer/nodejs-quickstart/blob/master/transaction-bankingexample.js">Node.js Quick Start GitHub repository</a> to get a copy of the full code sample and run it yourself.</em></p><br /><h3 id="impacts-to-remember">Impacts to remember</h3><p>When dealing with multi-document transactions in a distributed system, remember that there is performance overhead impact which may affect resource constraints and performance goals. Further, since the database has to “lock” the involved resources to prevent concurrent writes from interfering with one another (e.g., transaction fails), other clients trying to write data may be stuck waiting for the transaction to complete which can impact application latency and user experience.</p></div></div></div><div style="background: auto;" class="Article__ArticleStyles-sc-14w82yl-0 obHHn relative w-full "><div class="relative w-full w-max-770 p-h-15 p-v-25 m-auto"><div><h2 id="how-do-acid-transactions-work-in-mongodb" style="font-family: Euclid Circular A; font-weight: 500;">How do ACID transactions work in MongoDB?</h2><p>MongoDB's document model allows related data to be stored together in a single document. The document model, combined with atomic document updates, obviates the need for transactions in a majority of use cases. Nonetheless, there are cases where true multi-document, multi-collection MongoDB transactions are the best choice.</p><p>MongoDB transactions work similarly to transactions in other databases. To use a transaction, start a MongoDB session through a driver. Then, use that session to execute your group of database operations. You can run any of the CRUD (create, read, update, and delete) operations across multiple documents, collections, and shards.</p><p>For specific code samples of how to implement transactions, view the Quick Starts on the MongoDB Developer Center:</p><ul class="bullets"><li><a target="_target" href="https://mongodb.com/developer/quickstart/golang-multi-document-acid-transactions">Multi-Document ACID Transactions in MongoDB with Golang</a></li><li><a target="_target" href="https://mongodb.com/blog/post/java-and-mongodb-40-support-for-multidocument-acid-transactions">Multi-Document ACID Transactions in MongoDB with Java</a></li><li><a target="_target" href="https://mongodb.com/developer/languages/javascript/node-transactions-3-3-2">Multi-Document ACID Transactions in MongoDB with Node.js</a></li><li><a target="_target" href="https://mongodb.com/developer/quickstart/python-acid-transactions">Multi-Document ACID Transactions in MongoDB with Python</a></li></ul><p>Visit the <a target="_target" href="https://docs.mongodb.com/drivers">MongoDB drivers documentation</a> for language-specific guides for each of the languages officially supported by MongoDB. You can also view a <a target="_target" href="https://www.mongodb.com/docs/manual/core/transactions-operations/">list of transaction best practices and production considerations</a>.</p></div></div></div><div style="background: auto;" class="Article__ArticleStyles-sc-14w82yl-0 obHHn relative w-full "><div class="relative w-full w-max-770 p-h-15 p-v-25 m-auto"><div><h2 id="when-should-i-use-mongodb-multidocument-transactions" style="font-family: Euclid Circular A; font-weight: 500;">When should I use MongoDB multi-document transactions?</h2><p>Applications that require transactions typically have use cases where values are exchanged between different parties. These are typically &quot;System of Record&quot; or &quot;Line of Business&quot; applications.</p><p>Example applications that may benefit from multi-document transactions include:</p><ul class="bullets"><li><p><strong>Systems that move funds from one account to another</strong> (e.g., banking applications, payment processing systems, trading platforms).</p></li><li><p><strong>Supply chain and booking systems</strong> where ownership of goods and services is transferred from one party to another.</p></li><li><p><strong>Billing systems</strong> that store information in detailed records as well as summary records.</p></li></ul></div></div></div><div style="background: auto;" class="Article__ArticleStyles-sc-14w82yl-0 obHHn relative w-full "><div class="relative w-full w-max-770 p-h-15 p-v-25 m-auto"><div><h2 id="what-are-the-best-practices-for-transactions-in-mongodb" style="font-family: Euclid Circular A; font-weight: 500;">What are the best practices for transactions in MongoDB?</h2><p>In general, it's recommended to model data so that data accessed together is stored together. When data is modeled in this manner, not only will better performance be achieved, but also, transactions will not be required.</p><p>For applications that do require transactions, adhere to these best practices:</p><ul class="bullets"><li><p><strong>Break long-running transactions into smaller pieces</strong> so they don't exceed the default 60-second timeout. (Note that this timeout can be extended.) Ensure the operations in transactions are using indexes so they run quickly.</p></li><li><p><strong>Limit each transaction to 1,000 document modifications.</strong></p></li><li><p><strong>Ensure the appropriate <a target="_target" href="https://docs.mongodb.com/manual/core/transactions#read-concern-write-concern-read-preference">read and write concerns</a> are configured</strong> (note that beginning in version 5.0, MongoDB <a target="_target" href="https://mongodb.com/blog/post/default-majority-write-concern-providing-stronger-durability-guarantees-out-box">defaults to the necessary majority write concern</a>).</p></li><li><p><strong>Add appropriate error handling</strong> and retry transactions that fail due to transient errors.</p></li><li><p><strong>Remember the performance cost</strong> of transactions affecting multiple shards. For more information on these best practices, check out the Multi-Document ACID Transactions on MongoDB white paper as well as the MongoDB documentation on transactions.</p></li></ul></div></div></div><div style="background: auto;" class="Article__ArticleStyles-sc-14w82yl-0 obHHn relative w-full "><div class="relative w-full w-max-770 p-h-15 p-v-25 m-auto"><div><h2 id="next-steps" style="font-family: Euclid Circular A; font-weight: 500;">Next steps</h2><p>Ready to learn more? <a target="_target" href="https://mongodb.com/cloud/atlas/register">MongoDB Atlas</a> is MongoDB's fully managed database as a service and it’s the easiest way to begin using MongoDB. Get started with transactions by <a target="_target" href="http://cloud.mongodb.com/">creating a free MongoDB Atlas cluster</a>.</p></div></div></div><div style="background: auto;" class="Article__ArticleStyles-sc-14w82yl-0 obHHn relative w-full "><div class="relative w-full w-max-770 p-h-15 p-v-25 m-auto"><h2 id="faqs" style="font-family: Euclid Circular A; font-weight: 500;">FAQs</h2></div></div><div class="relative"><div class="absolute w-full h-full overflow-hidden" style="z-index: -1;"><div style="background-position: center; background-repeat: no-repeat; background-size: cover; z-index: -1;" class="lazyload absolute w-full h-full"></div></div><div class="w-full w-max-770 m-auto p-h-20 p-t-10 p-b-10"><div class="Details__Container-sc-wfooue-0 emWlgh"><div class="fl-1"><h3 id="what-are-multidocument-transactions" class="dark-green m-0 fnt-medium p-v-20">What are multi-document transactions?</h3><div class="overflow-hidden" style="height: auto; max-height: 0; transition: 200ms ease 0ms; opacity: 0;"><div class="m-0 p-b-30 dark-gray fl fl-wrap"><span>A multi-document transaction, sometimes called a distributed transaction, consists of multiple, interdependent transactions spread across different databases and systems.</span></div></div></div><button class="m-l-20 green fnt-24 p-h-20"><div style="transform: rotate(45deg); transition: 200ms ease 0ms;"><mdb-icon name="close_x" style="--icon-size: 15px;"></mdb-icon></div></button></div><div class="Details__Container-sc-wfooue-0 emWlgh"><div class="fl-1"><h3 id="what-are-acid-transactions" class="dark-green m-0 fnt-medium p-v-20">What are ACID transactions?</h3><div class="overflow-hidden" style="height: auto; max-height: 0; transition: 200ms ease 0ms; opacity: 0;"><div class="m-0 p-b-30 dark-gray fl fl-wrap"><span>An ACID transaction is a set of operations in a database system that is in alignment with ACID properties.</span></div></div></div><button class="m-l-20 green fnt-24 p-h-20"><div style="transform: rotate(45deg); transition: 200ms ease 0ms;"><mdb-icon name="close_x" style="--icon-size: 15px;"></mdb-icon></div></button></div><div class="Details__Container-sc-wfooue-0 emWlgh"><div class="fl-1"><h3 id="what-are-the-acid-properties-of-a-transaction" class="dark-green m-0 fnt-medium p-v-20">What are the ACID properties of a transaction?</h3><div class="overflow-hidden" style="height: auto; max-height: 0; transition: 200ms ease 0ms; opacity: 0;"><div class="m-0 p-b-30 dark-gray fl fl-wrap"><span>The four key properties of ACID are atomicity, consistency, isolation, and durability.</span></div></div></div><button class="m-l-20 green fnt-24 p-h-20"><div style="transform: rotate(45deg); transition: 200ms ease 0ms;"><mdb-icon name="close_x" style="--icon-size: 15px;"></mdb-icon></div></button></div></div></div><style data-emotion="css-global wo4i12">@font-face{font-family:Akzidenz-Grotesk Std;src:url(https://static.mongodb.com/com/fonts/EuclidCircularA-Regular-WebXL.woff2) format('woff2');font-weight:300;font-style:normal;font-display:swap;}@font-face{font-family:Akzidenz-Grotesk Std;src:url(https://static.mongodb.com/com/fonts/EuclidCircularA-Medium-WebXL.woff2) format('woff2');font-weight:500;font-style:normal;font-display:swap;}</style><style data-emotion="css 1j19lrv">.css-1j19lrv{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;background-color:#061621;color:#ffffff;}.css-1j19lrv a:hover{-webkit-text-decoration:underline;text-decoration:underline;}</style><footer class="css-1j19lrv"><style data-emotion="css 1el4ear">.css-1el4ear{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;max-width:1024px;padding-top:64px;padding-bottom:64px;padding-left:24px;padding-right:24px;}@media screen and (min-width: 768px){.css-1el4ear{-webkit-box-flex-wrap:unset;-webkit-flex-wrap:unset;-ms-flex-wrap:unset;flex-wrap:unset;}}</style><style data-emotion="css 1ro0ep5">.css-1ro0ep5{box-sizing:border-box;margin:0;min-width:0;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;max-width:1024px;padding-top:64px;padding-bottom:64px;padding-left:24px;padding-right:24px;}@media screen and (min-width: 768px){.css-1ro0ep5{-webkit-box-flex-wrap:unset;-webkit-flex-wrap:unset;-ms-flex-wrap:unset;flex-wrap:unset;}}</style><div class="css-1ro0ep5"><style data-emotion="css 1dkb3g4">.css-1dkb3g4{-webkit-flex-basis:25%;-ms-flex-preferred-size:25%;flex-basis:25%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;min-width:100%;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;margin-bottom:40px;}@media screen and (min-width: 768px){.css-1dkb3g4{min-width:unset;margin-bottom:0px;}}</style><style data-emotion="css dskpio">.css-dskpio{box-sizing:border-box;margin:0;min-width:0;-webkit-flex-basis:25%;-ms-flex-preferred-size:25%;flex-basis:25%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;min-width:100%;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;margin-bottom:40px;}@media screen and (min-width: 768px){.css-dskpio{min-width:unset;margin-bottom:0px;}}</style><div class="css-dskpio"><style data-emotion="css sbarov">.css-sbarov{display:grid;grid-template-columns:1fr 1fr;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}@media screen and (min-width: 768px){.css-sbarov{display:block;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}}</style><style data-emotion="css tucx3n">.css-tucx3n{box-sizing:border-box;margin:0;min-width:0;display:grid;grid-template-columns:1fr 1fr;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}@media screen and (min-width: 768px){.css-tucx3n{display:block;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}}</style><div class="css-tucx3n"><style data-emotion="css 1daqsee">.css-1daqsee{max-width:120px;}@media screen and (min-width: 1024px){.css-1daqsee{max-width:150px;}}</style><style data-emotion="css 1a7nq3w">.css-1a7nq3w{box-sizing:border-box;margin:0;min-width:0;max-width:120px;}@media screen and (min-width: 1024px){.css-1a7nq3w{max-width:150px;}}</style><div class="css-1a7nq3w"><style data-emotion="css 93rpjy">.css-93rpjy{font-size:14px;line-height:18px;height:auto;}</style><a href="https://www.mongodb.com" class="css-93rpjy"><style data-emotion="css 1xgosv1">.css-1xgosv1{width:100%;min-width:100px;font-size:14px;line-height:18px;height:auto;}</style><img src="https://webimages.mongodb.com/_com_assets/cms/kuyj3d95v5vbmm2f4-horizontal_white.svg?auto=format%252Ccompress" alt="MongoDB logo" width="150" height="38" class="css-1xgosv1" /></a></div></div><style data-emotion="css yjv4kt">.css-yjv4kt{display:none;font-family:Akzidenz-Grotesk Std;font-weight:300;font-size:12px;color:#b8c4c2;}@media screen and (min-width: 768px){.css-yjv4kt{display:block;}}</style><style data-emotion="css 148f6w8">.css-148f6w8{box-sizing:border-box;margin:0;min-width:0;display:none;font-family:Akzidenz-Grotesk Std;font-weight:300;font-size:12px;color:#b8c4c2;}@media screen and (min-width: 768px){.css-148f6w8{display:block;}}</style><div class="css-148f6w8">© 2024 MongoDB, Inc.</div></div><style data-emotion="css 1svoxwz">.css-1svoxwz{-webkit-flex-basis:25%;-ms-flex-preferred-size:25%;flex-basis:25%;margin-top:24px;min-width:50%;}@media screen and (min-width: 460px){.css-1svoxwz{min-width:unset;}}@media screen and (min-width: 768px){.css-1svoxwz{margin-top:0px;min-width:unset;}}</style><style data-emotion="css 1err1dc">.css-1err1dc{box-sizing:border-box;margin:0;min-width:0;-webkit-flex-basis:25%;-ms-flex-preferred-size:25%;flex-basis:25%;margin-top:24px;min-width:50%;}@media screen and (min-width: 460px){.css-1err1dc{min-width:unset;}}@media screen and (min-width: 768px){.css-1err1dc{margin-top:0px;min-width:unset;}}</style><div class="css-1err1dc"><style data-emotion="css of25nb">.css-of25nb{font-family:Akzidenz-Grotesk Std;font-weight:500;font-size:16px;margin-bottom:24px;color:#ffffff;margin-top:0px;}@media screen and (min-width: 768px){.css-of25nb{margin-top:initial;}}</style><p class="css-of25nb">About</p><style data-emotion="css 1akr5ww">.css-1akr5ww{list-style:none;margin:0;padding:0;display:block;}</style><ul class="css-1akr5ww"><style data-emotion="css 1w8osvb">.css-1w8osvb{margin-bottom:24px;}</style><li class="css-1w8osvb"><style data-emotion="css 16ay36s">.css-16ay36s{color:#ffffff;-webkit-text-decoration:none;text-decoration:none;font-family:Akzidenz-Grotesk Std;font-weight:300;font-size:14px;line-height:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}</style><a href="https://www.mongodb.com/careers" target="_self" rel="noreferrer noopener" class=" css-16ay36s">Careers</a></li><li class="css-1w8osvb"><a href="https://investors.mongodb.com" target="_self" rel="noreferrer noopener" class=" css-16ay36s">Investor Relations</a></li><li class="css-1w8osvb"><a href="https://www.mongodb.com/legal" target="_self" rel="noreferrer noopener" class=" css-16ay36s">Legal</a></li><li class="css-1w8osvb"><a href="https://github.com/mongodb" target="_self" rel="noreferrer noopener" class=" css-16ay36s">GitHub</a></li><li class="css-1w8osvb"><a href="https://www.mongodb.com/company/contact/mongodb-vulnerability-disclosure-policy" target="_self" rel="noreferrer noopener" class=" css-16ay36s">Security Information</a></li><li class="css-1w8osvb"><a href="https://www.mongodb.com/products/platform/trust" target="_self" rel="noreferrer noopener" class=" css-16ay36s">Trust Center</a></li><li class="css-1w8osvb"><a href="https://www.mongodb.com/company/contact/social-media-hub" target="_self" rel="noreferrer noopener" class=" css-16ay36s">Connect with Us</a></li></ul></div><div class="css-1err1dc"><p class="css-of25nb">Support</p><ul class="css-1akr5ww"><li class="css-1w8osvb"><a href="https://www.mongodb.com/company/contact" target="_self" rel="noreferrer noopener" class=" css-16ay36s">Contact Us</a></li><li class="css-1w8osvb"><a href="https://support.mongodb.com/welcome" target="_self" rel="noreferrer noopener" class=" css-16ay36s">Customer Portal</a></li><li class="css-1w8osvb"><a href="https://status.mongodb.com/" target="_self" rel="noreferrer noopener" class=" css-16ay36s">Atlas Status</a></li><li class="css-1w8osvb"><a href="https://www.mongodb.com/services/support" target="_self" rel="noreferrer noopener" class=" css-16ay36s">Customer Support</a></li></ul></div><div class="css-1err1dc"><p class="css-of25nb">Deployment Options</p><ul class="css-1akr5ww"><li class="css-1w8osvb"><a href="https://www.mongodb.com/cloud/atlas/register" target="_self" rel="noreferrer noopener" class=" css-16ay36s">MongoDB Atlas</a></li><li class="css-1w8osvb"><a href="https://www.mongodb.com/try/download/enterprise" target="_self" rel="noreferrer noopener" class=" css-16ay36s">Enterprise Advanced</a></li><li class="css-1w8osvb"><a href=" https://www.mongodb.com/try/download/community" target="_self" rel="noreferrer noopener" class=" css-16ay36s">Community Edition</a></li></ul></div><style data-emotion="css 17c2rye">.css-17c2rye{-webkit-flex-basis:25%;-ms-flex-preferred-size:25%;flex-basis:25%;margin-top:24px;min-width:50%;}@media screen and (min-width: 460px){.css-17c2rye{min-width:100%;}}@media screen and (min-width: 768px){.css-17c2rye{margin-top:0px;min-width:unset;}}</style><style data-emotion="css 130l0sz">.css-130l0sz{box-sizing:border-box;margin:0;min-width:0;-webkit-flex-basis:25%;-ms-flex-preferred-size:25%;flex-basis:25%;margin-top:24px;min-width:50%;}@media screen and (min-width: 460px){.css-130l0sz{min-width:100%;}}@media screen and (min-width: 768px){.css-130l0sz{margin-top:0px;min-width:unset;}}</style><div class="css-130l0sz"><p class="css-of25nb">Data Basics</p><style data-emotion="css ro7s69">.css-ro7s69{list-style:none;margin:0;padding:0;display:block;grid-template-columns:1fr 1fr 1fr;}@media screen and (min-width: 460px){.css-ro7s69{display:grid;}}@media screen and (min-width: 768px){.css-ro7s69{display:block;}}</style><ul class="css-ro7s69"><li class="css-1w8osvb"><a href="https://www.mongodb.com/resources/basics/databases/vector-databases" target="_self" rel="noreferrer noopener" class=" css-16ay36s">Vector Databases</a></li><li class="css-1w8osvb"><a href="https://www.mongodb.com/resources/basics/databases/nosql-explained" target="_self" rel="noreferrer noopener" class=" css-16ay36s">NoSQL Databases</a></li><li class="css-1w8osvb"><a href="https://www.mongodb.com/resources/basics/databases/document-databases" target="_self" rel="noreferrer noopener" class=" css-16ay36s">Document Databases</a></li><li class="css-1w8osvb"><a href="https://www.mongodb.com/resources/basics/artificial-intelligence/retrieval-augmented-generation" target="_self" rel="noreferrer noopener" class=" css-16ay36s">RAG Database</a></li><li class="css-1w8osvb"><a href="https://www.mongodb.com/resources/basics/databases/acid-transactions" target="_self" rel="noreferrer noopener" class=" css-16ay36s">ACID Transactions</a></li><li class="css-1w8osvb"><a href="https://www.mongodb.com/resources/languages/mern-stack" target="_self" rel="noreferrer noopener" class=" css-16ay36s">MERN Stack</a></li><li class="css-1w8osvb"><a href=" https://www.mongodb.com/resources/languages/mean-stack" target="_self" rel="noreferrer noopener" class=" css-16ay36s">MEAN Stack</a></li></ul></div><style data-emotion="css 9xnpax">.css-9xnpax{display:block;font-family:Akzidenz-Grotesk Std;width:100%;font-weight:300;font-size:12px;color:#b8c4c2;margin-top:24px;text-align:center;}@media screen and (min-width: 768px){.css-9xnpax{display:none;}}</style><style data-emotion="css 14jzdz8">.css-14jzdz8{box-sizing:border-box;margin:0;min-width:0;display:block;font-family:Akzidenz-Grotesk Std;width:100%;font-weight:300;font-size:12px;color:#b8c4c2;margin-top:24px;text-align:center;}@media screen and (min-width: 768px){.css-14jzdz8{display:none;}}</style><div class="css-14jzdz8">© 2024 MongoDB, Inc.</div></div></footer></div></div></div> <script id="server-data"> window.__serverData={"_id":"61535d22837c94d5a3da4bc1","url":"resources/basics/databases/acid-transactions","components":[{"key":"Nav","props":{"left":[{"title":"Cloud","links":[{"title":"Atlas","text":"Fully managed cloud database","href":"/cloud/atlas"},{"title":"Atlas Data Lake","text":"Query and combine AWS S3 and MongoDB data","href":"/atlas/data-lake"},{"title":"Atlas Search","text":"Cloud-native full-text search engine","href":"/atlas/search"},{"title":"Realm","text":"Application Development Services","href":"/realm"},{"title":"Charts","text":"Native visualization for MongoDB data","href":"/products/charts"},{"title":"Atlas for Government","text":"Atlas for US Government workloads","href":"/cloud/atlas/government"}]},{"title":"Software","links":[{"title":"Community Server","text":"A free and open document database","href":"/try/download/community"},{"title":"Enterprise Server","text":"Advanced features and security","href":"/try/download/enterprise"},{"title":"Developer Tools","text":"Connect, configure and work with MongoDB","href":"/developer-tools"},{"title":"Compass","text":"GUI for MongoDB","href":"/products/compass"},{"title":"Ops Manager","text":"On-prem management platform for MongoDB","href":"/products/ops-manager"},{"title":"Connectors","text":"Easy integrations to your data estate","href":"/connectors"}]},{"title":"Pricing","links":[],"href":"/pricing"},{"title":"Learn","links":[{"title":"What is MongoDB?","text":"Start here","href":"/what-is-mongodb"},{"title":"University","href":"https://university.mongodb.com","text":"Free online courses from MongoDB"},{"title":"Blog","href":"/blog","text":"Updates, tutorials, people"},{"title":"Developer Hub","href":"https://developer.mongodb.com","text":"Developer best practices, trends, insights"},{"title":"Resources","href":"/resources","text":"Webinars, white papers, datasheets, and more"},{"title":"Training","href":"/training","text":"Instructor-led sessions on your schedule"},{"title":"Events","href":"/events","text":"Worldwide community events"},{"title":"Community","href":"https://community.mongodb.com","text":"The MongoDB Community discussion forums"}]},{"title":"Solutions","links":[{"title":"Customers","text":"Who uses MongoDB","href":"/who-uses-mongodb"},{"title":"Use Cases","text":"How MongoDB is used","href":"/use-cases"},{"title":"Consulting","text":"Accelerate success with MongoDB","href":"/products/consulting"},{"title":"Partners","text":"Find or become a partner","href":"/partners"}]},{"title":"Docs","links":[{"title":"Cloud","text":"Atlas, Realm, and more","href":"https://docs.mongodb.com/cloud/"},{"title":"Server","href":"https://docs.mongodb.com/manual/","text":"The database"},{"title":"Drivers","text":"Language APIs","href":"https://docs.mongodb.com/ecosystem/drivers/"},{"title":"Tools","text":"Compass, Charts, Connectors, and more","href":"https://docs.mongodb.com/tools/"},{"title":"How to Guides","text":"Get started in minutes","href":"https://docs.mongodb.com/guides/"}]}],"right":[{"title":"Contact","href":"/contact","button":false},{"title":"Sign In","href":"https://cloud.mongodb.com/user","button":false},{"title":"Try Free","href":"/try","button":true}],"mobile":[{"text":"Contact","href":"/contact"}],"navType":"","banner":{"bannerText":"","bannerHref":"","bannerType":"","bannerTheme":"","pillText":"","href":""},"notSticky":false,"isATF":true},"id":"989b8ca6-b587-4fef-be63-c030fa7b4cac"},{"key":"Header","props":{"h1":"A Guide to ACID Properties in Database Management Systems","titleColor":0,"content":"","cta":{"href":"https://www.mongodb.com/cloud/atlas/register","text":"Get started free","openInNewWindow":true,"faux":false},"cta2":{"href":"","text":"","openInNewWindow":false,"faux":false},"imgsrc":"https://webassets.mongodb.com/_com_assets/cms/header-au039oiqsr.svg","bgColor":"","bgImage":"","isATF":true},"id":1658930811782},{"key":"Article","props":{"content":"The use of real-time applications and Internet of Things (IoT) devices, plus the exponential growth of unstructured data assets, has organizations transitioning to NoSQL databases in ever-increasing numbers. In fact, the NoSQL market is anticipated to reach US $74.5 billion by 2032, exhibiting a growth rate (CAGR) of 24.9% from 2024 to 2032 (IMARC group, 2024).\n\nThis growth isn't surprising given the ability of NoSQL database management systems (DBMS) to effectively manage large, diverse datasets and the associated big data analysis required. However, many still believe that NoSQL DBMS aren't able to address a key requirement of many organizations — ACID transactions management and compliance. The good news is that some NoSQL DBMS absolutely can!\n\nIn this article, we'll discuss what ACID transactions are, ACID transaction properties, why these transactions are important, and an ACID transaction example in a NoSQL DBMS.\n\n<br>\n\n**Table of contents**\n\n- [What are ACID transactions?](what-are-acid-transactions)\n- [Why are ACID transactions important?](#why-are-acid-transactions-important)\n- [ACID transactions example in DBMS](#acid-transaction-example-in-dbms)\n- [How do ACID transactions work in MongoDB?](#how-do-acid-transactions-work-in-mongodb)\n- [When should I use MongoDB multi-document transactions?](#when-should-i-use-mongodb-multidocument-transactions)\n- [What are the best practices for transactions in MongoDB?](#what-are-the-best-practices-for-transactions-in-mongodb)\n- [Next steps](#next-steps)\n- [FAQs](#faqs)\n","textalign":"","background":"","isATF":true},"id":1632854049455},{"key":"Article","props":{"content":"##What are ACID transactions?\n\n<br>\n\n###Transactions explained\nAt their most basic level, database transactions are a group of database read and write operations that have been completed successfully according to DBMS definitions (e.g., defined transaction criteria). There are two main types of transactions:\n\n- **Single transactions**: A single transaction refers to a series of one or more database operations resulting in one action, completed successfully. Once complete, the transaction is accepted and can be found in a transaction log. A common example of a single transaction is the withdrawal of money from an ATM.\n\n- **Multi-transactions**: A multi-transaction, sometimes called a distributed transaction, consists of multiple, interdependent transactions spread across different databases and systems (e.g., distributed systems). Records of these transactions are also found in a transaction log. An example of these transactions includes transferring money from one account to another or an employer issuing a new employee a security badge with a photo.\n\nIt's important to note that some transactions are required to adhere to strict standards of data integrity (e.g., data is complete and correct) and data consistency (e.g., the value is the same across all tables/databases). This is often the case where fiduciary responsibility or regulatory compliance is involved. Examples include commercial banking, investment brokerage, and legal settlements. In these situations, a standard adherence to DBMS definitions is not enough, and ACID transactions are required.\n","textalign":"","background":"","isATF":false},"id":1632854073231},{"key":"Article","props":{"content":"\n###ACID transactions\nACID is an acronym that stands for atomicity, consistency, isolation, and durability (ACID). Together, ACID properties ensure that a set of database operations (grouped together in a transaction) leave the database in a valid state even in the event of unexpected errors. Further, ACID transactions provide the level of transactional guarantees that many regulatory agencies require.\n\nBelow is a general overview of each ACID transaction element, as well as a description of how a NoSQL document database is able to handle that ACID element. For the purposes of this article, [MongoDB Atlas](https://www.mongodb.com/products/capabilities/transactions) will be used.\n\n<br>\n\n####Atomicity\nAtomicity guarantees that all of the commands that make up a transaction are treated as a single unit and either succeed or fail together. This is important in the event of a system failure or power outage, in that if a transaction wasn't completely processed, it will be discarded and the database maintains its data integrity.\n\n<br>\n\n<u>How MongoDB handles atomicity:\u003C/u> In MongoDB, a write operation is atomic on the level of a single document, even if the operation modifies multiple embedded documents within a single document. For situations that require atomicity of reads and writes to multiple documents (in a single collection or multiple collections), MongoDB supports distributed transactions, including transactions on replica sets and sharded clusters.\n\n<br>\n\n####Consistency\nConsistency guarantees that changes made within a transaction are populated across the database system (e.g., nodes) and in alignment with DBMS constraints. If data consistency is going to be negatively impacted by a transaction in an inconsistent state, the entire transaction will fail.\n\n<u>How MongoDB handles consistency:\u003C/u> MongoDB gives the flexibility to normalize or duplicate data to optimize applications. If data is duplicated in the schema, the developer must decide how to keep duplicated data consistent across multiple collections. Some applications require duplicated data to be made consistent immediately, whereas other applications can tolerate reading stale data. Examples are illustrated below:\n","textalign":"","background":"","isATF":false},"id":1632854339388},{"key":"Table","props":{"title":"","content":"","mobileComparison":true,"alignment":1,"cellAlign":0,"bg":0,"width":0,"headings":[{"header":"Method","promoted":false,"tooltip":"","columnWidth":""},{"header":"Description","promoted":false,"tooltip":"","columnWidth":""},{"header":"Performance Impact","promoted":false,"tooltip":"","columnWidth":""},{"header":"Use","tooltip":"","promoted":false,"columnWidth":""}],"table":[{"row":[{"cell":"[Transactions](https://www.mongodb.com/docs/manual/core/transactions/#std-label-transactions)"},{"cell":"Updates to multiple collections occur in a single atomic operation"},{"cell":"Potentially high, due to read contention"},{"cell":"Your application must always return up-to-date data and can tolerate potential negative performance impact during periods of heavy reads."}]},{"row":[{"cell":"[Embed related data](https://www.mongodb.com/docs/manual/data-modeling/concepts/embedding-vs-references/#std-label-data-modeling-embedding)"},{"cell":"Modify the application schema to embed related data in a single collection."},{"cell":"Low to moderate, depending on document size and indexes"},{"cell":"Your application always reads and updates the related data at the same time. This solution simplifies your schema and prevents the need for [$lookup](https://www.mongodb.com/docs/manual/reference/operator/aggregation/lookup/#mongodb-pipeline-pipe.-lookup) operations."}]},{"row":[{"cell":"[Atlas Database Triggers](https://www.mongodb.com/docs/atlas/app-services/triggers/database-triggers/)"},{"cell":"When an update occurs in one collection, triggers automatically update another collection."},{"cell":"Low to moderate, with potential delays in processing triggered events"},{"cell":"Your application can tolerate reading slightly stale data. Users can potentially see outdated data if they run a query immediately after an update, but before the trigger finishes updating the second collection."}]}],"bgColor":"","bgImage":"","subscript":"","isATF":false},"id":1720718799528},{"key":"Article","props":{"content":"_Note: Learn more about [data consistency](https://www.mongodb.com/docs/manual/data-modeling/data-consistency/)._\n\n<br>\n\n####Isolation\nEach transaction is isolated from the other transactions to prevent data conflicts. This also helps database operations in relation to managing multiple entries and multi-level transactions. For example, if two users are trying to modify the same data (or even the same transaction), the DBMS uses a mechanism called a lock manager to suspend other users until the changes being made by the first user are complete.\n\n<br>\n\n<u>How MongoDB handles isolation:\u003C/u> MongoDB employs a technique called snapshot isolation (e.g., each transaction appears to operate on a personal snapshot of the database taken at the start of the transaction). Transactions can read data from the “snapshot” of data committed at the time the transaction starts, and any conflicting updates will cause the transaction to abort.\n\nIn addition, MongoDB transactions support a [transaction-level read concern](https://www.mongodb.com/docs/manual/core/transactions/#transactions-and-read-concern) and [transaction-level write concern](https://www.mongodb.com/docs/manual/core/transactions/#transactions-and-write-concern). Clients can set an appropriate level of read and write concern, with the most rigorous being snapshot read concern combined with majority write concern. Majority write concern means that the write operations have been durably committed to a calculated majority of the data-bearing nodes (configurable by the developer).\n\n<br>\n\n####Durability\nDurability guarantees that once the transaction completes and changes are written to the database, they are persisted. This ensures that data within the system will persist even in the case of system failures like crashes or power outages. The concept of durability is a key element in data reliability.\n\n<br>\n\n<u>How MongoDB handles durability:\u003C/u>MongoDB creates an OpLog containing the disk location and bytes changed for each \"write.\" If there is an unforeseen event (e.g., a power outage) during the writing of the transaction, the OpLog can be used when the system starts again to replay any writes that were not flushed to disk before the shutdown. In addition, operations are changed before written in the OpLog so they're idempotent and can be retried multiple times. Transactions, or \"writes,\" are flushed to disk roughly every 60 seconds by default.","textalign":"","background":"","isATF":false},"id":1658930977967},{"key":"Article","props":{"content":"##Why are ACID transactions important?\nACID transactions help maintain data integrity and reliability, while also ensuring that vital data which is subject to governmental or industry regulation (e.g., bank account, stock portfolio) meet required standards. Further, ACID compliance is often a prerequisite for implementing data replication and achieving high availability in distributed database systems.\n","textalign":"","background":"","isATF":false},"id":1658931012436},{"key":"Article","props":{"content":"##ACID transaction example in DBMS\nUsing the NoSQL document database MongoDB Atlas, here is an example of how ACID multi-document transactions are handled and how ACID transactions guarantee alignment to minimum ACID property standards.\n","textalign":"","background":"","isATF":false},"id":1722288152601},{"key":"Article","props":{"content":"###ACID multi-document transactions\nImagine you are building a function to transfer money from one bank account to another where each account is its own record. If money is successfully taken from the source account but never credited to the destination account, a serious accounting problem has been created. Conversely, if the destination account is credited but the source account is never debited, another serious accounting issue occurs.\n\n\n\n<br>\n\n<p align=center>\n\n![Diagram showing how the ACID properties impact the flow of transferring money from one bank account to another.](https://webimages.mongodb.com/_com_assets/cms/l5vhrmvicbxj4o8am-image1.png?auto=format%252Ccompress)\n_The diagram demonstrates how the ACID properties impact the flow of transferring money from one bank account to another._\n\u003C/p>\n\n<br>\n\nThese two write operations have to either both happen or both not happen to keep the system and its data consistent. Further, this means that if any command in the transaction fails, the database must roll back (e.g., undo) all of the changes it had written in the course of the transaction.","textalign":"","background":"","isATF":false},"id":1632854441611},{"key":"Article","props":{"content":"\n\n<br>\n\n<p align=\"center\">\n![code sample from github in partnership with mongodb](https://webimages.mongodb.com/_com_assets/cms/lyhjprfyhwrddbgnn-image1.png?auto=format%252Ccompress)\n\u003C/p>\n\n_Note: To learn more, visit the [Node.js Quick Start GitHub repository](https://github.com/mongodb-developer/nodejs-quickstart/blob/master/transaction-bankingexample.js) to get a copy of the full code sample and run it yourself._\n\n<br>\n\n###Impacts to remember\nWhen dealing with multi-document transactions in a distributed system, remember that there is performance overhead impact which may affect resource constraints and performance goals. Further, since the database has to “lock” the involved resources to prevent concurrent writes from interfering with one another (e.g., transaction fails), other clients trying to write data may be stuck waiting for the transaction to complete which can impact application latency and user experience.\n","textalign":"","background":"","isATF":false},"id":1720719104457},{"key":"Article","props":{"content":"##How do ACID transactions work in MongoDB?\nMongoDB's document model allows related data to be stored together in a single document. The document model, combined with atomic document updates, obviates the need for transactions in a majority of use cases. Nonetheless, there are cases where true multi-document, multi-collection MongoDB transactions are the best choice.\n\nMongoDB transactions work similarly to transactions in other databases. To use a transaction, start a MongoDB session through a driver. Then, use that session to execute your group of database operations. You can run any of the CRUD (create, read, update, and delete) operations across multiple documents, collections, and shards.\n\nFor specific code samples of how to implement transactions, view the Quick Starts on the MongoDB Developer Center:\n\n- [Multi-Document ACID Transactions in MongoDB with Golang](https://mongodb.com/developer/quickstart/golang-multi-document-acid-transactions)\n- [Multi-Document ACID Transactions in MongoDB with Java](https://mongodb.com/blog/post/java-and-mongodb-40-support-for-multidocument-acid-transactions)\n- [Multi-Document ACID Transactions in MongoDB with Node.js](https://mongodb.com/developer/languages/javascript/node-transactions-3-3-2)\n- [Multi-Document ACID Transactions in MongoDB with Python](https://mongodb.com/developer/quickstart/python-acid-transactions)\n\nVisit the [MongoDB drivers documentation](https://docs.mongodb.com/drivers) for language-specific guides for each of the languages officially supported by MongoDB. You can also view a [list of transaction best practices and production considerations](https://www.mongodb.com/docs/manual/core/transactions-operations/).","textalign":"","background":"","isATF":false},"id":1632857804510},{"key":"Article","props":{"content":"##When should I use MongoDB multi-document transactions?\nApplications that require transactions typically have use cases where values are exchanged between different parties. These are typically \"System of Record\" or \"Line of Business\" applications.\n\nExample applications that may benefit from multi-document transactions include:\n\n- **Systems that move funds from one account to another** (e.g., banking applications, payment processing systems, trading platforms).\n\n- **Supply chain and booking systems** where ownership of goods and services is transferred from one party to another.\n\n- **Billing systems** that store information in detailed records as well as summary records.","textalign":"","background":"","isATF":false},"id":1632857980947},{"key":"Article","props":{"content":"##What are the best practices for transactions in MongoDB?\nIn general, it's recommended to model data so that data accessed together is stored together. When data is modeled in this manner, not only will better performance be achieved, but also, transactions will not be required.\n\nFor applications that do require transactions, adhere to these best practices:\n\n- **Break long-running transactions into smaller pieces** so they don't exceed the default 60-second timeout. (Note that this timeout can be extended.) Ensure the operations in transactions are using indexes so they run quickly.\n\n- **Limit each transaction to 1,000 document modifications.**\n\n- **Ensure the appropriate [read and write concerns](https://docs.mongodb.com/manual/core/transactions#read-concern-write-concern-read-preference) are configured** (note that beginning in version 5.0, MongoDB [defaults to the necessary majority write concern](https://mongodb.com/blog/post/default-majority-write-concern-providing-stronger-durability-guarantees-out-box)).\n\n- **Add appropriate error handling** and retry transactions that fail due to transient errors.\n\n- **Remember the performance cost** of transactions affecting multiple shards.\nFor more information on these best practices, check out the Multi-Document ACID Transactions on MongoDB white paper as well as the MongoDB documentation on transactions.\n","textalign":"","background":"","isATF":false},"id":1632858125848},{"key":"Article","props":{"content":"##Next steps\nReady to learn more? [MongoDB Atlas](https://mongodb.com/cloud/atlas/register) is MongoDB's fully managed database as a service and it’s the easiest way to begin using MongoDB. Get started with transactions by [creating a free MongoDB Atlas cluster](http://cloud.mongodb.com/).","textalign":"","background":"","isATF":false},"id":1722289133726},{"key":"Article","props":{"content":"##FAQs\n","textalign":"","background":"","isATF":false},"id":1632858419905},{"key":"Details","props":{"items":[{"titleColor":0,"title":"What are multi-document transactions?","text":"A multi-document transaction, sometimes called a distributed transaction, consists of multiple, interdependent transactions spread across different databases and systems."},{"titleColor":0,"title":"What are ACID transactions?","text":"An ACID transaction is a set of operations in a database system that is in alignment with ACID properties."},{"titleColor":0,"title":"What are the ACID properties of a transaction?","text":"The four key properties of ACID are atomicity, consistency, isolation, and durability."}],"bgColor":"","bgImage":"","isATF":false},"id":1632858430356},{"key":"Footer","props":{"toggle":0,"column1":{"title":"Resources","maxWidth":"185","hasIcons":0,"className":"","items":[{"href":"/nosql-explained","text":"NoSQL Database Explained","isTarget":""},{"href":"/collateral/mongodb-architecture-guide","text":"MongoDB Architecture Guide","isTarget":""},{"href":"/products/mongodb-enterprise-advanced","text":"MongoDB Enterprise Advanced","isTarget":""},{"href":"/cloud/atlas","text":"MongoDB Atlas","isTarget":""},{"href":"/cloud/stitch","text":"MongoDB Stitch","isTarget":""},{"href":"//engineering.mongodb.com/","text":"MongoDB Engineering Blog","isTarget":"true"}]},"column2":{"title":"Education & Support","maxWidth":"150","hasIcons":0,"className":"","items":[{"href":"//university.mongodb.com/courses/catalog","text":"View Course Catalog","isTarget":"true"},{"href":"//university.mongodb.com/certification","text":"Certification","isTarget":"true"},{"href":"//docs.mongodb.com/manual/","text":"MongoDB Manual","isTarget":"true"},{"href":"//docs.mongodb.com/manual/installation/","text":"Installation","isTarget":"true"},{"href":"//support.mongodb.com/welcome","text":"Support","isTarget":""},{"href":"/faq","text":"FAQ","isTarget":""}]},"column3":{"title":"Popular Topics","maxWidth":"300","hasIcons":0,"className":"be-ix-link-block","items":[{"href":"/cloud/atlas/aws-mongodb","text":"MongoDB on AWS","isTarget":""},{"href":"/cloud/atlas/mongodb-google-cloud","text":"MongoDB on Google Cloud","isTarget":""},{"href":"/cloud/atlas/multicloud-data-distribution","text":"Run MongoDB on Multiple Clouds with MongoDB Atlas","isTarget":""},{"href":"/cloud/atlas/migrate","text":"Migrate to MongoDB Atlas","isTarget":""},{"href":"/cloud-database","text":"What is a Cloud Database?","isTarget":""},{"href":"/blog/post/building-a-rest-api-with-mongodb-stitch","text":"Building a REST API with MongoDB Stitch","isTarget":""}]},"column4":{"title":"About","maxWidth":"100","hasIcons":0,"className":"","items":[{"href":"/company","text":"MongoDB, Inc.","isTarget":""},{"href":"/leadership","text":"Leadership","isTarget":""},{"href":"/pressroom","text":"Press Room","isTarget":""},{"href":"/careers","text":"Careers","isTarget":""},{"href":"https://investors.mongodb.com","text":"Investors","isTarget":""},{"href":"/legal/legal-notices","text":"Legal Notices","isTarget":""},{"href":"/legal/privacy-policy","text":"Privacy Notice","isTarget":""},{"href":"/security","text":"Security Information","isTarget":""},{"href":"/cloud/trust","text":"Trust Center","isTarget":""},{"href":"/office-locations","text":"Office Locations","isTarget":""},{"href":"/community-code-of-conduct","text":"Code of Conduct","isTarget":""}]},"column5":{"title":"Follow Us","maxWidth":"120","hasIcons":1,"className":"","items":[{"href":"//facebook.com/mongodb","text":"Facebook","isTarget":"true"},{"href":"//github.com/mongodb","text":"Github","isTarget":"true"},{"href":"//youtube.com/user/mongodb","text":"Youtube","isTarget":"true"},{"href":"//twitter.com/mongodb","text":"Twitter","isTarget":"true"},{"href":"//www.linkedin.com/company/mongodbinc/","text":"LinkedIn","isTarget":"true"},{"href":"//slackpass.io/mongo-db","text":"Slack","isTarget":"true"},{"href":"//stackoverflow.com/tags/mongodb/info","text":"StackOverflow","isTarget":"true"}]},"isATF":false},"id":"482ecd82-e13d-4d06-af9f-8b7eb49ee32a"}],"created_at":"2021-09-28T18:21:21.986Z","meta":{"title":"ACID Properties In DBMS Explained | MongoDB","description":"ACID properties in DBMS make up the key aspects of an ACID transaction. In this article, we will explain the importance of atomicity, consistency, isolation, and durability.","title#localised":true,"description#localised":true},"node_type":"content_block","owners":[],"published_at":"2021-09-28T19:54:14.042Z","status":"published","updated_at":"2024-07-30T20:39:20.868Z","cms":{"editedURL":true},"draft":true,"globals":[{"_id":"6001f22ac1f95e773a0e0044","key":"AccountLogin","created_at":"2021-01-15T19:51:06.717Z","props":{"title":"MongoDB Stands with the Black Community, changes","subtitle":"Join MongoDB in supporting organizations that are fighting for racial justice and equal opportunity","cta":{"text":"Join Now","href":"https://mongodbforjustice.mongodb.events/","openInNewWindow":false,"faux":false},"image":{"desktop":"https://account.mongodb.com/static/images/auth/racial_justice_desktop_login.png","mobile":"https://account.mongodb.com/static/images/auth/racial_justice_mobile.png"},"artist":"Artwork by [Lo Harris](http://loharris.com/)"},"updated_at":"2024-06-25T16:51:29.509Z"},{"_id":"601c7536f53e6b3af09679d3","key":"PromoBanner","created_at":"2021-02-04T22:29:10.420Z","props":{"type":3,"typeColor":0,"title":"Atlas Vector Search voted most loved vector database in 2024 Retool State of AI report - Read more >>","href":"https://www.mongodb.com/blog/post/retool-state-of-ai-report-mongodb-vector-search-most-loved-vector-database?tck=global_pencil","titleColor":0,"background":1,"disabled":false,"eventBranded":false,"eventBrandedButtonImg":0},"updated_at":"2024-06-25T16:51:29.515Z","translations":{"en-us":{"title":"Atlas Vector Search voted most loved vector database in 2024 Retool State of AI report - Read more >>","href":"https://www.mongodb.com/blog/post/retool-state-of-ai-report-mongodb-vector-search-most-loved-vector-database?tck=global_pencil","eventBranded":false,"disabled":false,"type":3,"eventBrandedButtonImg":0,"typeColor":0,"background":1,"titleColor":0},"pt-br":{"title":"Register for MongoDB.live today!","type":0,"titleColor":0},"es":{"title":"Register for MongoDB.live today!"},"it-it":{"title":"Register for MongoDB.live today!"},"de-de":{"title":"Register for MongoDB.live today!"},"fr-fr":{"title":"Register for MongoDB.live today!"},"ja-jp":{"title":"Register for MongoDB.live today!"},"ko-kr":{"title":"Register for MongoDB.live today!"},"zh-cn":{"title":"Register for MongoDB.live today!"}}},{"_id":"60c127b5527761a42edca7bb","key":"TranslationFallbackBanner","created_at":"2021-06-09T20:42:29.953Z","updated_at":"2024-06-25T16:51:29.521Z","props":{"text":"The contents of this page are not currently available in the selected language. However, we are committed to providing as much localized content as possible. Thanks for your patience."},"translations":{"en-us":{"text":"The contents of this page are not currently available in the selected language. However, we are committed to providing as much localized content as possible. Thanks for your patience."},"pt-br":{"text":"O conteúdo desta página não está disponível no idioma selecionado no momento. No entanto, estamos comprometidos em oferecer o máximo de conteúdo localizado possível. Agradecemos a paciência."},"es":{"text":"El contenido de esta página no está disponible actualmente en el idioma seleccionado. Sin embargo, nos comprometemos a proporcionar la mayor cantidad de contenido localizado posible. Gracias por tu paciencia."},"it-it":{"text":"I contenuti di questa pagina non sono attualmente disponibili nella lingua selezionata. Tuttavia, ci impegniamo a fornire il maggior numero possibile di contenuti localizzati. Grazie per la pazienza."},"de-de":{"text":"Die Inhalte dieser Seite sind derzeit nicht in der gewählten Sprache verfügbar. Wir arbeiten jedoch daran, so viele lokalisierte Inhalte wie möglich bereitzustellen. Vielen Dank für Ihre Geduld."},"fr-fr":{"text":"Le contenu de cette page n'est actuellement pas disponible dans la langue sélectionnée. Nous mettons toutefois tout en œuvre pour proposer autant de contenu localisé que possible. Merci de votre patience."},"ja-jp":{"text":"現在、このページの選択した言語のコンテンツはありません。ローカライズされたコンテンツをできるだけ多く提供できるよう取り組んでいます。しばらくお待ちください。"},"ko-kr":{"text":"본 페이지 컨텐츠는 현재 선택된 언어로는 볼 수 없습니다. 가능한 빨리 현지화된 컨텐츠를 제공해 드리기 위해 노력하고 있습니다. 기다려 주셔서 감사합니다."},"zh-cn":{"text":"本页面内容目前不支持所选语言。我们将尽可能提供更多的本地化内容。敬请期待。"}}},{"_id":"616eeecda9b8227a40aa618c","key":"DTRolloutComponent","props":{"targetAudience":"100"},"created_at":"2021-10-19T16:14:05.400Z","updated_at":"2024-06-25T16:51:29.526Z"},{"_id":"653956df6e40c7d11245d051","key":"PencilBanner","props":{"pillText":"BLOG","disabled":false,"bannerTheme":0,"theme":"forestGreen","bannerText":"Atlas Vector Search voted most loved vector database in 2024 Retool State of AI report — Read more >>","href":"https://www.mongodb.com/blog/post/retool-state-of-ai-report-mongodb-vector-search-most-loved-vector-database?tck=global_pencil"},"created_at":"2023-10-20T17:42:11.857Z","updated_at":"2024-06-25T16:51:29.530Z","translations":{"en-us":{"theme":"forestGreen","pillText":"BLOG","bannerText":"Atlas Vector Search voted most loved vector database in 2024 Retool State of AI report — Read more >>","href":"https://www.mongodb.com/blog/post/retool-state-of-ai-report-mongodb-vector-search-most-loved-vector-database?tck=global_pencil","bannerTheme":0,"disabled":false},"pt-br":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"},"es":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"},"it-it":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"},"de-de":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"},"fr-fr":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"},"ja-jp":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"},"ko-kr":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"},"zh-cn":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"}}}],"locale":"en","saved_by":{"_id":"61e728b4ea343f00122d3598","user_name":"eric.gamble","permissions":{"roles":["Content Lead","Content Producer"],"node_types":[],"documents":[],"collections":[]}},"tag_ids":["60cb6791cad1730d6d6f39c4"],"updateHistory":[{"time":"2021-09-28T18:31:40.691Z","user_name":"fiona.erickson","versionMessage":"acid transactions update"},{"time":"2021-09-28T19:52:39.384Z","user_name":"fiona.erickson","versionMessage":"acid transactions update"},{"time":"2021-09-28T19:53:39.089Z","user_name":"fiona.erickson","versionMessage":"acid transactions update"},{"time":"2021-09-28T19:54:14.042Z","user_name":"fiona.erickson","versionMessage":"acid transactions update"},{"time":"2021-09-30T18:26:45.362Z","user_name":"fiona.erickson","versionMessage":"acid transactions update"},{"time":"2022-07-27T14:23:26.394Z","user_name":"eric.gamble","versionMessage":"acid transactions update"},{"time":"2022-07-27T14:24:55.246Z","user_name":"eric.gamble","versionMessage":"acid transactions update"},{"time":"2022-07-27T14:25:16.550Z","user_name":"eric.gamble","versionMessage":"acid transactions update"},{"time":"2022-08-24T13:20:50.555Z","user_name":"stef.falkowski","versionMessage":"updated broken link"},{"time":"2022-11-02T16:44:54.936Z","user_name":"michaleen.craig","versionMessage":"updated typo (dupe paragraph)"},{"time":"2024-07-04T17:30:36.863Z","user_name":"iuliia.shyshkina","versionMessage":"WEBSITE-16884 updated page "},{"time":"2024-07-30T20:32:22.341Z","user_name":"eric.gamble","versionMessage":"surferseo update"},{"time":"2024-07-30T20:39:20.868Z","user_name":"eric.gamble","versionMessage":"surferseo update"}],"versionMessage":"surferseo update","authors":[],"parent_document":[],"context":{"isMobile":false,"i18n":{"First Name":"First Name","Last Name":"Last Name","Company":"Company","Country":"Country","Business Email":"Business Email","Email Address":"Email Address","Postal Code":"Postal Code","City":"City","Which best matches your current role?":"Which best matches your current role?","IT Executive (CIO, CTO, VP Engineering, etc.)":"IT Executive (CIO, CTO, VP Engineering, etc.)","Business Executive (CEO, COO, CMO, etc.)":"Business Executive (CEO, COO, CMO, etc.)","Architect":"Architect","Business Development / Alliance Manager":"Business Development / Alliance Manager","DBA":"DBA","Technical Operations":"TechOps","Director / Development Manager":"Director / Development Manager","Product / Project Manager":"Product / Project Manager","Software Developer / Engineer":"Software Developer / Engineer","Mobile Developer":"Mobile Developer","Business Analyst":"Business Analyst","Data Scientist":"Data Scientist","Student":"Student","Other":"Other","How did you hear about MongoDB.live?":"How did you hear about MongoDB.live?","Email":"Email","Facebook/Instagram":"Facebook / Instagram","Friend/Colleague":"Friend / Colleague","LinkedIn":"LinkedIn","MongoDB Sales Rep":"MongoDB Sales Rep","Other MongoDB Employee":"Other MongoDB Employee","MongoDB Website":"MongoDB Website","Phone":"Phone","Job Function":"Job Function","How are you using MongoDB?":"How are you using MongoDB?","I'm learning MongoDB":"I'm learning MongoDB","I'm building a new app":"I'm building a new app","I'm migrating an app to Atlas (Cloud)":"I'm migrating an app to Atlas (Cloud)","MongoDB Engineering Blog":"MongoDB Engineering Blog","Press Room":"Press Room","Legal Notices":"Legal Notices","Code of Conduct":"Code of Conduct","Who uses MongoDB":"Who uses MongoDB","NoSQL Database Explained":"NoSQL Database Explained","Tools":"Tools","Partners":"Partners","Customers":"Customers","About":"About","Sign In":"Sign In","Mongo, MongoDB, and the MongoDB leaf logo are registered trademarks of MongoDB, Inc.":"Mongo, MongoDB, and the MongoDB leaf logo are registered trademarks of MongoDB, Inc.","Leadership":"Leadership","2020 MongoDB, Inc. - Mongo, MongoDB, and the MongoDB leaf logo are registered trademarks of MongoDB, Inc.":"2020 MongoDB, Inc. - Mongo, MongoDB, and the MongoDB leaf logo are registered trademarks of MongoDB, Inc.","Developer Tools":"Developer Tools","Try Free":"Try Free","Education & Support":"Education & Support","Native visualization for MongoDB data":"Native visualization for MongoDB data","Server":"Server","Resources":"Resources","The database":"The database","Solutions":"Solutions","Fully managed cloud database":"Fully managed cloud database","Contact":"Contact","Find or become a partner":"Find or become a partner","MongoDB on AWS":"MongoDB on AWS","Community":"Community","A free and open document database":"A free and open document database","What is a Cloud Database?":"What is a Cloud Database?","Atlas, Realm, and more":"Atlas, Realm, and more","Investors":"Investors","What is MongoDB?":"What is MongoDB?","Use Cases":"Use Cases","Compass, Charts, Connectors, and more":"Compass, Charts, Connectors, and more","Developer Hub":"Developer Hub","Run MongoDB on Multiple Clouds with MongoDB Atlas":"Run MongoDB on Multiple Clouds with MongoDB Atlas","MongoDB Architecture Guide":"MongoDB Architecture Guide","Language APIs":"Language APIs","Popular Topics":"Popular Topics","Worldwide community events":"Worldwide community events","Follow Us":"Follow Us","The MongoDB Community discussion forums":"The MongoDB Community discussion forums","Free online courses from MongoDB":"Free online courses from MongoDB","MongoDB on Google Cloud":"MongoDB on Google Cloud","Application Development Services":"Application Development Services","FAQ":"FAQ","Learn":"Learn","Cloud-native full-text search engine":"Cloud-native full-text search engine","Developer best practices, trends, insights":"Developer best practices, trends, insights","Advanced features and security":"Advanced features and security","Training":"Training","Building a REST API with MongoDB Realm":"Building a REST API with MongoDB Realm","Easy integrations to your data estate":"Easy integrations to your data estate","Connect, configure and work with MongoDB":"Connect, configure and work with MongoDB","Connectors":"Connectors","Community Server":"Community Server","Query and combine AWS S3 and MongoDB data":"Query and combine AWS S3 and MongoDB data","University":"University","Trust Center":"Trust Center","Careers":"Careers","Events":"Events","How MongoDB is used":"How MongoDB is used","Enterprise Server":"Enterprise Server","Installation":"Installation","How to Guides":"How to Guides","Support":"Support","Consulting":"Consulting","Office Locations":"Office Locations","Start here":"Start here","Webinars, white papers, datasheets, and more":"Webinars, white papers, datasheets, and more","On-prem management platform for MongoDB":"On-prem management platform for MongoDB","Updates, tutorials, people":"Updates, tutorials, people","View Course Catalog":"View Course Catalog","MongoDB Manual":"MongoDB Manual","Pricing":"Pricing","Instructor-led sessions on your schedule":"Instructor-led sessions on your schedule","Get started in minutes":"Get started in minutes","Accelerate success with MongoDB":"Accelerate success with MongoDB","Migrate to MongoDB Atlas":"Migrate to MongoDB Atlas","Docs":"Docs","Charts":"Charts","Privacy Notice":"Privacy Notice","Certification":"Certification","GUI for MongoDB":"GUI for MongoDB","Security Information":"Security Information","Learn more":"Learn more","terms of service":"terms of service","privacy policy":"privacy policy","Sign in":"Sign in","or":"or","Your Work Email":"Your Work Email","to login":"to login","I agree to the":"I agree to the","and":"and","Click here":"Click here","Already have an account":"Already have an account","Sign up with Google":"Sign up with Google","Sign up with Github":"Sign up with Github","Your Company (optional)":"Your Company (optional)","8 characters minimum":"8 characters minimum","Sitemap":"Sitemap","Read White Paper":"Read White Paper","View Datasheet":"View Datasheet","Read Analyst Report":"Read Analyst Report","Email Me the PDF":"Email Me the PDF","More like this":"More like this","View all resources":"View all resources","language":"language","share this":"share this","Access White Paper":"Access White Paper","Access Datasheet":"Access Datasheet","Access Analyst Report":"Access Analyst Report"},"promoBanner":{"_id":"601c7536f53e6b3af09679d3","key":"PromoBanner","created_at":"2021-02-04T22:29:10.420Z","props":{"type":4,"typeColor":0,"title":"Join us at AWS re:Invent 2024! Learn how to use MongoDB for AI use cases. Learn more >>","href":"https://www.mongodb.com/events/aws-reinvent?tck=pencil_banner","titleColor":0,"background":1,"disabled":false,"eventBranded":false,"eventBrandedButtonImg":0},"updated_at":"2024-10-21T20:11:05.312Z","translations":{"en-us":{"title":"Join us at AWS re:Invent 2024! Learn how to use MongoDB for AI use cases. Learn more >>","href":"https://www.mongodb.com/events/aws-reinvent?tck=pencil_banner","eventBranded":false,"disabled":false,"type":4,"eventBrandedButtonImg":0,"typeColor":0,"background":1,"titleColor":0},"pt-br":{"title":"Register for MongoDB.live today!","type":0,"titleColor":0},"es":{"title":"Register for MongoDB.live today!"},"it-it":{"title":"Register for MongoDB.live today!"},"de-de":{"title":"Register for MongoDB.live today!"},"fr-fr":{"title":"Register for MongoDB.live today!"},"ja-jp":{"title":"Register for MongoDB.live today!"},"ko-kr":{"title":"Register for MongoDB.live today!"},"zh-cn":{"title":"Register for MongoDB.live today!"}}},"pencilBanner":{"_id":"653956df6e40c7d11245d051","key":"PencilBanner","props":{"pillText":"Event","disabled":false,"bannerTheme":0,"theme":"forestGreen","bannerText":"Join us at AWS re:Invent 2024! Learn how to use MongoDB for AI use cases. <mark>Learn more >>\u003C/mark>","href":"https://www.mongodb.com/events/aws-reinvent?tck=pencil_banner"},"created_at":"2023-10-20T17:42:11.857Z","updated_at":"2024-10-21T20:11:05.334Z","translations":{"en-us":{"theme":"forestGreen","pillText":"Event","bannerText":"Join us at AWS re:Invent 2024! Learn how to use MongoDB for AI use cases. <mark>Learn more >>\u003C/mark>","href":"https://www.mongodb.com/events/aws-reinvent?tck=pencil_banner","bannerTheme":0,"disabled":false},"pt-br":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"},"es":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"},"it-it":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"},"de-de":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"},"fr-fr":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"},"ja-jp":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"},"ko-kr":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"},"zh-cn":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"}}},"locale":"en","urlLocale":"en","url":"/resources/basics/databases/acid-transactions","cookies":{},"translationFallbackBanner":{"_id":"60c127b5527761a42edca7bb","key":"TranslationFallbackBanner","created_at":"2021-06-09T20:42:29.953Z","updated_at":"2024-10-21T20:11:05.319Z","props":{"text":"The contents of this page are not currently available in the selected language. However, we are committed to providing as much localized content as possible. Thanks for your patience."},"translations":{"en-us":{"text":"The contents of this page are not currently available in the selected language. However, we are committed to providing as much localized content as possible. Thanks for your patience."},"pt-br":{"text":"O conteúdo desta página não está disponível no idioma selecionado no momento. No entanto, estamos comprometidos em oferecer o máximo de conteúdo localizado possível. Agradecemos a paciência."},"es":{"text":"El contenido de esta página no está disponible actualmente en el idioma seleccionado. Sin embargo, nos comprometemos a proporcionar la mayor cantidad de contenido localizado posible. Gracias por tu paciencia."},"it-it":{"text":"I contenuti di questa pagina non sono attualmente disponibili nella lingua selezionata. Tuttavia, ci impegniamo a fornire il maggior numero possibile di contenuti localizzati. Grazie per la pazienza."},"de-de":{"text":"Die Inhalte dieser Seite sind derzeit nicht in der gewählten Sprache verfügbar. Wir arbeiten jedoch daran, so viele lokalisierte Inhalte wie möglich bereitzustellen. Vielen Dank für Ihre Geduld."},"fr-fr":{"text":"Le contenu de cette page n'est actuellement pas disponible dans la langue sélectionnée. Nous mettons toutefois tout en œuvre pour proposer autant de contenu localisé que possible. Merci de votre patience."},"ja-jp":{"text":"現在、このページの選択した言語のコンテンツはありません。ローカライズされたコンテンツをできるだけ多く提供できるよう取り組んでいます。しばらくお待ちください。"},"ko-kr":{"text":"본 페이지 컨텐츠는 현재 선택된 언어로는 볼 수 없습니다. 가능한 빨리 현지화된 컨텐츠를 제공해 드리기 위해 노력하고 있습니다. 기다려 주셔서 감사합니다."},"zh-cn":{"text":"本页面内容目前不支持所选语言。我们将尽可能提供更多的本地化内容。敬请期待。"}}},"ip":"8.222.208.146"},"hideMenu":false,"querystring":{},"localizedDocuments":[{"_id":"61535d22837c94d5a3da4bc1","url":"resources/basics/databases/acid-transactions","components":[{"key":"Nav","props":{"left":[{"title":"Cloud","links":[{"title":"Atlas","text":"Fully managed cloud database","href":"/cloud/atlas"},{"title":"Atlas Data Lake","text":"Query and combine AWS S3 and MongoDB data","href":"/atlas/data-lake"},{"title":"Atlas Search","text":"Cloud-native full-text search engine","href":"/atlas/search"},{"title":"Realm","text":"Application Development Services","href":"/realm"},{"title":"Charts","text":"Native visualization for MongoDB data","href":"/products/charts"},{"title":"Atlas for Government","text":"Atlas for US Government workloads","href":"/cloud/atlas/government"}]},{"title":"Software","links":[{"title":"Community Server","text":"A free and open document database","href":"/try/download/community"},{"title":"Enterprise Server","text":"Advanced features and security","href":"/try/download/enterprise"},{"title":"Developer Tools","text":"Connect, configure and work with MongoDB","href":"/developer-tools"},{"title":"Compass","text":"GUI for MongoDB","href":"/products/compass"},{"title":"Ops Manager","text":"On-prem management platform for MongoDB","href":"/products/ops-manager"},{"title":"Connectors","text":"Easy integrations to your data estate","href":"/connectors"}]},{"title":"Pricing","links":[],"href":"/pricing"},{"title":"Learn","links":[{"title":"What is MongoDB?","text":"Start here","href":"/what-is-mongodb"},{"title":"University","href":"https://university.mongodb.com","text":"Free online courses from MongoDB"},{"title":"Blog","href":"/blog","text":"Updates, tutorials, people"},{"title":"Developer Hub","href":"https://developer.mongodb.com","text":"Developer best practices, trends, insights"},{"title":"Resources","href":"/resources","text":"Webinars, white papers, datasheets, and more"},{"title":"Training","href":"/training","text":"Instructor-led sessions on your schedule"},{"title":"Events","href":"/events","text":"Worldwide community events"},{"title":"Community","href":"https://community.mongodb.com","text":"The MongoDB Community discussion forums"}]},{"title":"Solutions","links":[{"title":"Customers","text":"Who uses MongoDB","href":"/who-uses-mongodb"},{"title":"Use Cases","text":"How MongoDB is used","href":"/use-cases"},{"title":"Consulting","text":"Accelerate success with MongoDB","href":"/products/consulting"},{"title":"Partners","text":"Find or become a partner","href":"/partners"}]},{"title":"Docs","links":[{"title":"Cloud","text":"Atlas, Realm, and more","href":"https://docs.mongodb.com/cloud/"},{"title":"Server","href":"https://docs.mongodb.com/manual/","text":"The database"},{"title":"Drivers","text":"Language APIs","href":"https://docs.mongodb.com/ecosystem/drivers/"},{"title":"Tools","text":"Compass, Charts, Connectors, and more","href":"https://docs.mongodb.com/tools/"},{"title":"How to Guides","text":"Get started in minutes","href":"https://docs.mongodb.com/guides/"}]}],"right":[{"title":"Contact","href":"/contact","button":false},{"title":"Sign In","href":"https://cloud.mongodb.com/user","button":false},{"title":"Try Free","href":"/try","button":true}],"mobile":[{"text":"Contact","href":"/contact"}],"navType":"","banner":{"bannerText":"","bannerHref":"","bannerType":"","bannerTheme":"","pillText":"","href":""},"notSticky":false},"id":"989b8ca6-b587-4fef-be63-c030fa7b4cac"},{"key":"Header","props":{"h1":"A Guide to ACID Properties in Database Management Systems","titleColor":0,"content":"","cta":{"href":"https://www.mongodb.com/cloud/atlas/register","text":"Get started free","openInNewWindow":true,"faux":false},"cta2":{"href":"","text":"","openInNewWindow":false,"faux":false},"imgsrc":"https://webassets.mongodb.com/_com_assets/cms/header-au039oiqsr.svg","bgColor":"","bgImage":""},"id":1658930811782},{"key":"Article","props":{"content":"The use of real-time applications and Internet of Things (IoT) devices, plus the exponential growth of unstructured data assets, has organizations transitioning to NoSQL databases in ever-increasing numbers. In fact, the NoSQL market is anticipated to reach US $74.5 billion by 2032, exhibiting a growth rate (CAGR) of 24.9% from 2024 to 2032 (IMARC group, 2024).\n\nThis growth isn't surprising given the ability of NoSQL database management systems (DBMS) to effectively manage large, diverse datasets and the associated big data analysis required. However, many still believe that NoSQL DBMS aren't able to address a key requirement of many organizations — ACID transactions management and compliance. The good news is that some NoSQL DBMS absolutely can!\n\nIn this article, we'll discuss what ACID transactions are, ACID transaction properties, why these transactions are important, and an ACID transaction example in a NoSQL DBMS.\n\n<br>\n\n**Table of contents**\n\n- [What are ACID transactions?](what-are-acid-transactions)\n- [Why are ACID transactions important?](#why-are-acid-transactions-important)\n- [ACID transactions example in DBMS](#acid-transaction-example-in-dbms)\n- [How do ACID transactions work in MongoDB?](#how-do-acid-transactions-work-in-mongodb)\n- [When should I use MongoDB multi-document transactions?](#when-should-i-use-mongodb-multidocument-transactions)\n- [What are the best practices for transactions in MongoDB?](#what-are-the-best-practices-for-transactions-in-mongodb)\n- [Next steps](#next-steps)\n- [FAQs](#faqs)\n","textalign":"","background":""},"id":1632854049455},{"key":"Article","props":{"content":"##What are ACID transactions?\n\n<br>\n\n###Transactions explained\nAt their most basic level, database transactions are a group of database read and write operations that have been completed successfully according to DBMS definitions (e.g., defined transaction criteria). There are two main types of transactions:\n\n- **Single transactions**: A single transaction refers to a series of one or more database operations resulting in one action, completed successfully. Once complete, the transaction is accepted and can be found in a transaction log. A common example of a single transaction is the withdrawal of money from an ATM.\n\n- **Multi-transactions**: A multi-transaction, sometimes called a distributed transaction, consists of multiple, interdependent transactions spread across different databases and systems (e.g., distributed systems). Records of these transactions are also found in a transaction log. An example of these transactions includes transferring money from one account to another or an employer issuing a new employee a security badge with a photo.\n\nIt's important to note that some transactions are required to adhere to strict standards of data integrity (e.g., data is complete and correct) and data consistency (e.g., the value is the same across all tables/databases). This is often the case where fiduciary responsibility or regulatory compliance is involved. Examples include commercial banking, investment brokerage, and legal settlements. In these situations, a standard adherence to DBMS definitions is not enough, and ACID transactions are required.\n","textalign":"","background":""},"id":1632854073231},{"key":"Article","props":{"content":"\n###ACID transactions\nACID is an acronym that stands for atomicity, consistency, isolation, and durability (ACID). Together, ACID properties ensure that a set of database operations (grouped together in a transaction) leave the database in a valid state even in the event of unexpected errors. Further, ACID transactions provide the level of transactional guarantees that many regulatory agencies require.\n\nBelow is a general overview of each ACID transaction element, as well as a description of how a NoSQL document database is able to handle that ACID element. For the purposes of this article, [MongoDB Atlas](https://www.mongodb.com/products/capabilities/transactions) will be used.\n\n<br>\n\n####Atomicity\nAtomicity guarantees that all of the commands that make up a transaction are treated as a single unit and either succeed or fail together. This is important in the event of a system failure or power outage, in that if a transaction wasn't completely processed, it will be discarded and the database maintains its data integrity.\n\n<br>\n\n<u>How MongoDB handles atomicity:\u003C/u> In MongoDB, a write operation is atomic on the level of a single document, even if the operation modifies multiple embedded documents within a single document. For situations that require atomicity of reads and writes to multiple documents (in a single collection or multiple collections), MongoDB supports distributed transactions, including transactions on replica sets and sharded clusters.\n\n<br>\n\n####Consistency\nConsistency guarantees that changes made within a transaction are populated across the database system (e.g., nodes) and in alignment with DBMS constraints. If data consistency is going to be negatively impacted by a transaction in an inconsistent state, the entire transaction will fail.\n\n<u>How MongoDB handles consistency:\u003C/u> MongoDB gives the flexibility to normalize or duplicate data to optimize applications. If data is duplicated in the schema, the developer must decide how to keep duplicated data consistent across multiple collections. Some applications require duplicated data to be made consistent immediately, whereas other applications can tolerate reading stale data. Examples are illustrated below:\n","textalign":"","background":""},"id":1632854339388},{"key":"Table","props":{"title":"","content":"","mobileComparison":true,"alignment":1,"cellAlign":0,"bg":0,"width":0,"headings":[{"header":"Method","promoted":false,"tooltip":"","columnWidth":""},{"header":"Description","promoted":false,"tooltip":"","columnWidth":""},{"header":"Performance Impact","promoted":false,"tooltip":"","columnWidth":""},{"header":"Use","tooltip":"","promoted":false,"columnWidth":""}],"table":[{"row":[{"cell":"[Transactions](https://www.mongodb.com/docs/manual/core/transactions/#std-label-transactions)"},{"cell":"Updates to multiple collections occur in a single atomic operation"},{"cell":"Potentially high, due to read contention"},{"cell":"Your application must always return up-to-date data and can tolerate potential negative performance impact during periods of heavy reads."}]},{"row":[{"cell":"[Embed related data](https://www.mongodb.com/docs/manual/data-modeling/concepts/embedding-vs-references/#std-label-data-modeling-embedding)"},{"cell":"Modify the application schema to embed related data in a single collection."},{"cell":"Low to moderate, depending on document size and indexes"},{"cell":"Your application always reads and updates the related data at the same time. This solution simplifies your schema and prevents the need for [$lookup](https://www.mongodb.com/docs/manual/reference/operator/aggregation/lookup/#mongodb-pipeline-pipe.-lookup) operations."}]},{"row":[{"cell":"[Atlas Database Triggers](https://www.mongodb.com/docs/atlas/app-services/triggers/database-triggers/)"},{"cell":"When an update occurs in one collection, triggers automatically update another collection."},{"cell":"Low to moderate, with potential delays in processing triggered events"},{"cell":"Your application can tolerate reading slightly stale data. Users can potentially see outdated data if they run a query immediately after an update, but before the trigger finishes updating the second collection."}]}],"bgColor":"","bgImage":"","subscript":""},"id":1720718799528},{"key":"Article","props":{"content":"_Note: Learn more about [data consistency](https://www.mongodb.com/docs/manual/data-modeling/data-consistency/)._\n\n<br>\n\n####Isolation\nEach transaction is isolated from the other transactions to prevent data conflicts. This also helps database operations in relation to managing multiple entries and multi-level transactions. For example, if two users are trying to modify the same data (or even the same transaction), the DBMS uses a mechanism called a lock manager to suspend other users until the changes being made by the first user are complete.\n\n<br>\n\n<u>How MongoDB handles isolation:\u003C/u> MongoDB employs a technique called snapshot isolation (e.g., each transaction appears to operate on a personal snapshot of the database taken at the start of the transaction). Transactions can read data from the “snapshot” of data committed at the time the transaction starts, and any conflicting updates will cause the transaction to abort.\n\nIn addition, MongoDB transactions support a [transaction-level read concern](https://www.mongodb.com/docs/manual/core/transactions/#transactions-and-read-concern) and [transaction-level write concern](https://www.mongodb.com/docs/manual/core/transactions/#transactions-and-write-concern). Clients can set an appropriate level of read and write concern, with the most rigorous being snapshot read concern combined with majority write concern. Majority write concern means that the write operations have been durably committed to a calculated majority of the data-bearing nodes (configurable by the developer).\n\n<br>\n\n####Durability\nDurability guarantees that once the transaction completes and changes are written to the database, they are persisted. This ensures that data within the system will persist even in the case of system failures like crashes or power outages. The concept of durability is a key element in data reliability.\n\n<br>\n\n<u>How MongoDB handles durability:\u003C/u>MongoDB creates an OpLog containing the disk location and bytes changed for each \"write.\" If there is an unforeseen event (e.g., a power outage) during the writing of the transaction, the OpLog can be used when the system starts again to replay any writes that were not flushed to disk before the shutdown. In addition, operations are changed before written in the OpLog so they're idempotent and can be retried multiple times. Transactions, or \"writes,\" are flushed to disk roughly every 60 seconds by default.","textalign":"","background":""},"id":1658930977967},{"key":"Article","props":{"content":"##Why are ACID transactions important?\nACID transactions help maintain data integrity and reliability, while also ensuring that vital data which is subject to governmental or industry regulation (e.g., bank account, stock portfolio) meet required standards. Further, ACID compliance is often a prerequisite for implementing data replication and achieving high availability in distributed database systems.\n","textalign":"","background":""},"id":1658931012436},{"key":"Article","props":{"content":"##ACID transaction example in DBMS\nUsing the NoSQL document database MongoDB Atlas, here is an example of how ACID multi-document transactions are handled and how ACID transactions guarantee alignment to minimum ACID property standards.\n","textalign":"","background":""},"id":1722288152601},{"key":"Article","props":{"content":"###ACID multi-document transactions\nImagine you are building a function to transfer money from one bank account to another where each account is its own record. If money is successfully taken from the source account but never credited to the destination account, a serious accounting problem has been created. Conversely, if the destination account is credited but the source account is never debited, another serious accounting issue occurs.\n\n\n\n<br>\n\n<p align=center>\n\n![Diagram showing how the ACID properties impact the flow of transferring money from one bank account to another.](https://webimages.mongodb.com/_com_assets/cms/l5vhrmvicbxj4o8am-image1.png?auto=format%252Ccompress)\n_The diagram demonstrates how the ACID properties impact the flow of transferring money from one bank account to another._\n\u003C/p>\n\n<br>\n\nThese two write operations have to either both happen or both not happen to keep the system and its data consistent. Further, this means that if any command in the transaction fails, the database must roll back (e.g., undo) all of the changes it had written in the course of the transaction.","textalign":"","background":""},"id":1632854441611},{"key":"Article","props":{"content":"\n\n<br>\n\n<p align=\"center\">\n![code sample from github in partnership with mongodb](https://webimages.mongodb.com/_com_assets/cms/lyhjprfyhwrddbgnn-image1.png?auto=format%252Ccompress)\n\u003C/p>\n\n_Note: To learn more, visit the [Node.js Quick Start GitHub repository](https://github.com/mongodb-developer/nodejs-quickstart/blob/master/transaction-bankingexample.js) to get a copy of the full code sample and run it yourself._\n\n<br>\n\n###Impacts to remember\nWhen dealing with multi-document transactions in a distributed system, remember that there is performance overhead impact which may affect resource constraints and performance goals. Further, since the database has to “lock” the involved resources to prevent concurrent writes from interfering with one another (e.g., transaction fails), other clients trying to write data may be stuck waiting for the transaction to complete which can impact application latency and user experience.\n","textalign":"","background":""},"id":1720719104457},{"key":"Article","props":{"content":"##How do ACID transactions work in MongoDB?\nMongoDB's document model allows related data to be stored together in a single document. The document model, combined with atomic document updates, obviates the need for transactions in a majority of use cases. Nonetheless, there are cases where true multi-document, multi-collection MongoDB transactions are the best choice.\n\nMongoDB transactions work similarly to transactions in other databases. To use a transaction, start a MongoDB session through a driver. Then, use that session to execute your group of database operations. You can run any of the CRUD (create, read, update, and delete) operations across multiple documents, collections, and shards.\n\nFor specific code samples of how to implement transactions, view the Quick Starts on the MongoDB Developer Center:\n\n- [Multi-Document ACID Transactions in MongoDB with Golang](https://mongodb.com/developer/quickstart/golang-multi-document-acid-transactions)\n- [Multi-Document ACID Transactions in MongoDB with Java](https://mongodb.com/blog/post/java-and-mongodb-40-support-for-multidocument-acid-transactions)\n- [Multi-Document ACID Transactions in MongoDB with Node.js](https://mongodb.com/developer/languages/javascript/node-transactions-3-3-2)\n- [Multi-Document ACID Transactions in MongoDB with Python](https://mongodb.com/developer/quickstart/python-acid-transactions)\n\nVisit the [MongoDB drivers documentation](https://docs.mongodb.com/drivers) for language-specific guides for each of the languages officially supported by MongoDB. You can also view a [list of transaction best practices and production considerations](https://www.mongodb.com/docs/manual/core/transactions-operations/).","textalign":"","background":""},"id":1632857804510},{"key":"Article","props":{"content":"##When should I use MongoDB multi-document transactions?\nApplications that require transactions typically have use cases where values are exchanged between different parties. These are typically \"System of Record\" or \"Line of Business\" applications.\n\nExample applications that may benefit from multi-document transactions include:\n\n- **Systems that move funds from one account to another** (e.g., banking applications, payment processing systems, trading platforms).\n\n- **Supply chain and booking systems** where ownership of goods and services is transferred from one party to another.\n\n- **Billing systems** that store information in detailed records as well as summary records.","textalign":"","background":""},"id":1632857980947},{"key":"Article","props":{"content":"##What are the best practices for transactions in MongoDB?\nIn general, it's recommended to model data so that data accessed together is stored together. When data is modeled in this manner, not only will better performance be achieved, but also, transactions will not be required.\n\nFor applications that do require transactions, adhere to these best practices:\n\n- **Break long-running transactions into smaller pieces** so they don't exceed the default 60-second timeout. (Note that this timeout can be extended.) Ensure the operations in transactions are using indexes so they run quickly.\n\n- **Limit each transaction to 1,000 document modifications.**\n\n- **Ensure the appropriate [read and write concerns](https://docs.mongodb.com/manual/core/transactions#read-concern-write-concern-read-preference) are configured** (note that beginning in version 5.0, MongoDB [defaults to the necessary majority write concern](https://mongodb.com/blog/post/default-majority-write-concern-providing-stronger-durability-guarantees-out-box)).\n\n- **Add appropriate error handling** and retry transactions that fail due to transient errors.\n\n- **Remember the performance cost** of transactions affecting multiple shards.\nFor more information on these best practices, check out the Multi-Document ACID Transactions on MongoDB white paper as well as the MongoDB documentation on transactions.\n","textalign":"","background":""},"id":1632858125848},{"key":"Article","props":{"content":"##Next steps\nReady to learn more? [MongoDB Atlas](https://mongodb.com/cloud/atlas/register) is MongoDB's fully managed database as a service and it’s the easiest way to begin using MongoDB. Get started with transactions by [creating a free MongoDB Atlas cluster](http://cloud.mongodb.com/).","textalign":"","background":""},"id":1722289133726},{"key":"Article","props":{"content":"##FAQs\n","textalign":"","background":""},"id":1632858419905},{"key":"Details","props":{"items":[{"titleColor":0,"title":"What are multi-document transactions?","text":"A multi-document transaction, sometimes called a distributed transaction, consists of multiple, interdependent transactions spread across different databases and systems."},{"titleColor":0,"title":"What are ACID transactions?","text":"An ACID transaction is a set of operations in a database system that is in alignment with ACID properties."},{"titleColor":0,"title":"What are the ACID properties of a transaction?","text":"The four key properties of ACID are atomicity, consistency, isolation, and durability."}],"bgColor":"","bgImage":""},"id":1632858430356},{"key":"Footer","props":{"toggle":0,"column1":{"title":"Resources","maxWidth":"185","hasIcons":0,"className":"","items":[{"href":"/nosql-explained","text":"NoSQL Database Explained","isTarget":""},{"href":"/collateral/mongodb-architecture-guide","text":"MongoDB Architecture Guide","isTarget":""},{"href":"/products/mongodb-enterprise-advanced","text":"MongoDB Enterprise Advanced","isTarget":""},{"href":"/cloud/atlas","text":"MongoDB Atlas","isTarget":""},{"href":"/cloud/stitch","text":"MongoDB Stitch","isTarget":""},{"href":"//engineering.mongodb.com/","text":"MongoDB Engineering Blog","isTarget":"true"}]},"column2":{"title":"Education & Support","maxWidth":"150","hasIcons":0,"className":"","items":[{"href":"//university.mongodb.com/courses/catalog","text":"View Course Catalog","isTarget":"true"},{"href":"//university.mongodb.com/certification","text":"Certification","isTarget":"true"},{"href":"//docs.mongodb.com/manual/","text":"MongoDB Manual","isTarget":"true"},{"href":"//docs.mongodb.com/manual/installation/","text":"Installation","isTarget":"true"},{"href":"//support.mongodb.com/welcome","text":"Support","isTarget":""},{"href":"/faq","text":"FAQ","isTarget":""}]},"column3":{"title":"Popular Topics","maxWidth":"300","hasIcons":0,"className":"be-ix-link-block","items":[{"href":"/cloud/atlas/aws-mongodb","text":"MongoDB on AWS","isTarget":""},{"href":"/cloud/atlas/mongodb-google-cloud","text":"MongoDB on Google Cloud","isTarget":""},{"href":"/cloud/atlas/multicloud-data-distribution","text":"Run MongoDB on Multiple Clouds with MongoDB Atlas","isTarget":""},{"href":"/cloud/atlas/migrate","text":"Migrate to MongoDB Atlas","isTarget":""},{"href":"/cloud-database","text":"What is a Cloud Database?","isTarget":""},{"href":"/blog/post/building-a-rest-api-with-mongodb-stitch","text":"Building a REST API with MongoDB Stitch","isTarget":""}]},"column4":{"title":"About","maxWidth":"100","hasIcons":0,"className":"","items":[{"href":"/company","text":"MongoDB, Inc.","isTarget":""},{"href":"/leadership","text":"Leadership","isTarget":""},{"href":"/pressroom","text":"Press Room","isTarget":""},{"href":"/careers","text":"Careers","isTarget":""},{"href":"https://investors.mongodb.com","text":"Investors","isTarget":""},{"href":"/legal/legal-notices","text":"Legal Notices","isTarget":""},{"href":"/legal/privacy-policy","text":"Privacy Notice","isTarget":""},{"href":"/security","text":"Security Information","isTarget":""},{"href":"/cloud/trust","text":"Trust Center","isTarget":""},{"href":"/office-locations","text":"Office Locations","isTarget":""},{"href":"/community-code-of-conduct","text":"Code of Conduct","isTarget":""}]},"column5":{"title":"Follow Us","maxWidth":"120","hasIcons":1,"className":"","items":[{"href":"//facebook.com/mongodb","text":"Facebook","isTarget":"true"},{"href":"//github.com/mongodb","text":"Github","isTarget":"true"},{"href":"//youtube.com/user/mongodb","text":"Youtube","isTarget":"true"},{"href":"//twitter.com/mongodb","text":"Twitter","isTarget":"true"},{"href":"//www.linkedin.com/company/mongodbinc/","text":"LinkedIn","isTarget":"true"},{"href":"//slackpass.io/mongo-db","text":"Slack","isTarget":"true"},{"href":"//stackoverflow.com/tags/mongodb/info","text":"StackOverflow","isTarget":"true"}]}},"id":"482ecd82-e13d-4d06-af9f-8b7eb49ee32a"}],"created_at":"2021-09-28T18:21:21.986Z","meta":{"title":"ACID Properties In DBMS Explained | MongoDB","description":"ACID properties in DBMS make up the key aspects of an ACID transaction. In this article, we will explain the importance of atomicity, consistency, isolation, and durability.","title#localised":true,"description#localised":true},"node_type":"content_block","owners":[],"published_at":"2021-09-28T19:54:14.042Z","status":"published","updated_at":"2024-07-30T20:39:20.868Z","cms":{"editedURL":true},"draft":true,"globals":[{"_id":"6001f22ac1f95e773a0e0044","key":"AccountLogin","created_at":"2021-01-15T19:51:06.717Z","props":{"title":"MongoDB Stands with the Black Community, changes","subtitle":"Join MongoDB in supporting organizations that are fighting for racial justice and equal opportunity","cta":{"text":"Join Now","href":"https://mongodbforjustice.mongodb.events/","openInNewWindow":false,"faux":false},"image":{"desktop":"https://account.mongodb.com/static/images/auth/racial_justice_desktop_login.png","mobile":"https://account.mongodb.com/static/images/auth/racial_justice_mobile.png"},"artist":"Artwork by [Lo Harris](http://loharris.com/)"},"updated_at":"2024-06-25T16:51:29.509Z"},{"_id":"601c7536f53e6b3af09679d3","key":"PromoBanner","created_at":"2021-02-04T22:29:10.420Z","props":{"type":3,"typeColor":0,"title":"Atlas Vector Search voted most loved vector database in 2024 Retool State of AI report - Read more >>","href":"https://www.mongodb.com/blog/post/retool-state-of-ai-report-mongodb-vector-search-most-loved-vector-database?tck=global_pencil","titleColor":0,"background":1,"disabled":false,"eventBranded":false,"eventBrandedButtonImg":0},"updated_at":"2024-06-25T16:51:29.515Z","translations":{"en-us":{"title":"Atlas Vector Search voted most loved vector database in 2024 Retool State of AI report - Read more >>","href":"https://www.mongodb.com/blog/post/retool-state-of-ai-report-mongodb-vector-search-most-loved-vector-database?tck=global_pencil","eventBranded":false,"disabled":false,"type":3,"eventBrandedButtonImg":0,"typeColor":0,"background":1,"titleColor":0},"pt-br":{"title":"Register for MongoDB.live today!","type":0,"titleColor":0},"es":{"title":"Register for MongoDB.live today!"},"it-it":{"title":"Register for MongoDB.live today!"},"de-de":{"title":"Register for MongoDB.live today!"},"fr-fr":{"title":"Register for MongoDB.live today!"},"ja-jp":{"title":"Register for MongoDB.live today!"},"ko-kr":{"title":"Register for MongoDB.live today!"},"zh-cn":{"title":"Register for MongoDB.live today!"}}},{"_id":"60c127b5527761a42edca7bb","key":"TranslationFallbackBanner","created_at":"2021-06-09T20:42:29.953Z","updated_at":"2024-06-25T16:51:29.521Z","props":{"text":"The contents of this page are not currently available in the selected language. However, we are committed to providing as much localized content as possible. Thanks for your patience."},"translations":{"en-us":{"text":"The contents of this page are not currently available in the selected language. However, we are committed to providing as much localized content as possible. Thanks for your patience."},"pt-br":{"text":"O conteúdo desta página não está disponível no idioma selecionado no momento. No entanto, estamos comprometidos em oferecer o máximo de conteúdo localizado possível. Agradecemos a paciência."},"es":{"text":"El contenido de esta página no está disponible actualmente en el idioma seleccionado. Sin embargo, nos comprometemos a proporcionar la mayor cantidad de contenido localizado posible. Gracias por tu paciencia."},"it-it":{"text":"I contenuti di questa pagina non sono attualmente disponibili nella lingua selezionata. Tuttavia, ci impegniamo a fornire il maggior numero possibile di contenuti localizzati. Grazie per la pazienza."},"de-de":{"text":"Die Inhalte dieser Seite sind derzeit nicht in der gewählten Sprache verfügbar. Wir arbeiten jedoch daran, so viele lokalisierte Inhalte wie möglich bereitzustellen. Vielen Dank für Ihre Geduld."},"fr-fr":{"text":"Le contenu de cette page n'est actuellement pas disponible dans la langue sélectionnée. Nous mettons toutefois tout en œuvre pour proposer autant de contenu localisé que possible. Merci de votre patience."},"ja-jp":{"text":"現在、このページの選択した言語のコンテンツはありません。ローカライズされたコンテンツをできるだけ多く提供できるよう取り組んでいます。しばらくお待ちください。"},"ko-kr":{"text":"본 페이지 컨텐츠는 현재 선택된 언어로는 볼 수 없습니다. 가능한 빨리 현지화된 컨텐츠를 제공해 드리기 위해 노력하고 있습니다. 기다려 주셔서 감사합니다."},"zh-cn":{"text":"本页面内容目前不支持所选语言。我们将尽可能提供更多的本地化内容。敬请期待。"}}},{"_id":"616eeecda9b8227a40aa618c","key":"DTRolloutComponent","props":{"targetAudience":"100"},"created_at":"2021-10-19T16:14:05.400Z","updated_at":"2024-06-25T16:51:29.526Z"},{"_id":"653956df6e40c7d11245d051","key":"PencilBanner","props":{"pillText":"BLOG","disabled":false,"bannerTheme":0,"theme":"forestGreen","bannerText":"Atlas Vector Search voted most loved vector database in 2024 Retool State of AI report — Read more >>","href":"https://www.mongodb.com/blog/post/retool-state-of-ai-report-mongodb-vector-search-most-loved-vector-database?tck=global_pencil"},"created_at":"2023-10-20T17:42:11.857Z","updated_at":"2024-06-25T16:51:29.530Z","translations":{"en-us":{"theme":"forestGreen","pillText":"BLOG","bannerText":"Atlas Vector Search voted most loved vector database in 2024 Retool State of AI report — Read more >>","href":"https://www.mongodb.com/blog/post/retool-state-of-ai-report-mongodb-vector-search-most-loved-vector-database?tck=global_pencil","bannerTheme":0,"disabled":false},"pt-br":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"},"es":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"},"it-it":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"},"de-de":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"},"fr-fr":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"},"ja-jp":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"},"ko-kr":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"},"zh-cn":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"}}}],"locale":"en","saved_by":{"_id":"61e728b4ea343f00122d3598","user_name":"eric.gamble","permissions":{"roles":["Content Lead","Content Producer"],"node_types":[],"documents":[],"collections":[]}},"tag_ids":["60cb6791cad1730d6d6f39c4"],"updateHistory":[{"time":"2021-09-28T18:31:40.691Z","user_name":"fiona.erickson","versionMessage":"acid transactions update"},{"time":"2021-09-28T19:52:39.384Z","user_name":"fiona.erickson","versionMessage":"acid transactions update"},{"time":"2021-09-28T19:53:39.089Z","user_name":"fiona.erickson","versionMessage":"acid transactions update"},{"time":"2021-09-28T19:54:14.042Z","user_name":"fiona.erickson","versionMessage":"acid transactions update"},{"time":"2021-09-30T18:26:45.362Z","user_name":"fiona.erickson","versionMessage":"acid transactions update"},{"time":"2022-07-27T14:23:26.394Z","user_name":"eric.gamble","versionMessage":"acid transactions update"},{"time":"2022-07-27T14:24:55.246Z","user_name":"eric.gamble","versionMessage":"acid transactions update"},{"time":"2022-07-27T14:25:16.550Z","user_name":"eric.gamble","versionMessage":"acid transactions update"},{"time":"2022-08-24T13:20:50.555Z","user_name":"stef.falkowski","versionMessage":"updated broken link"},{"time":"2022-11-02T16:44:54.936Z","user_name":"michaleen.craig","versionMessage":"updated typo (dupe paragraph)"},{"time":"2024-07-04T17:30:36.863Z","user_name":"iuliia.shyshkina","versionMessage":"WEBSITE-16884 updated page "},{"time":"2024-07-30T20:32:22.341Z","user_name":"eric.gamble","versionMessage":"surferseo update"},{"time":"2024-07-30T20:39:20.868Z","user_name":"eric.gamble","versionMessage":"surferseo update"}],"versionMessage":"surferseo update"},{"_id":"673e36af3c407b001ac2fabf","url":"ja-jp/resources/basics/databases/acid-transactions","components":[{"key":"Nav","props":{"left":[{"title":"Cloud","links":[{"title":"Atlas","text":"Fully managed cloud database","href":"/cloud/atlas"},{"title":"Atlas Data Lake","text":"Query and combine AWS S3 and MongoDB data","href":"/atlas/data-lake"},{"title":"Atlas Search","text":"Cloud-native full-text search engine","href":"/atlas/search"},{"title":"Realm","text":"Application Development Services","href":"/realm"},{"title":"Charts","text":"Native visualization for MongoDB data","href":"/products/charts"},{"title":"Atlas for Government","text":"Atlas for US Government workloads","href":"/cloud/atlas/government"}]},{"title":"Software","links":[{"title":"Community Server","text":"A free and open document database","href":"/try/download/community"},{"title":"Enterprise Server","text":"Advanced features and security","href":"/try/download/enterprise"},{"title":"Developer Tools","text":"Connect, configure and work with MongoDB","href":"/developer-tools"},{"title":"Compass","text":"GUI for MongoDB","href":"/products/compass"},{"title":"Ops Manager","text":"On-prem management platform for MongoDB","href":"/products/ops-manager"},{"title":"Connectors","text":"Easy integrations to your data estate","href":"/connectors"}]},{"title":"Pricing","links":[],"href":"/pricing"},{"title":"Learn","links":[{"title":"What is MongoDB?","text":"Start here","href":"/what-is-mongodb"},{"title":"University","href":"https://university.mongodb.com","text":"Free online courses from MongoDB"},{"title":"Blog","href":"/blog","text":"Updates, tutorials, people"},{"title":"Developer Hub","href":"https://developer.mongodb.com","text":"Developer best practices, trends, insights"},{"title":"Resources","href":"/resources","text":"Webinars, white papers, datasheets, and more"},{"title":"Training","href":"/training","text":"Instructor-led sessions on your schedule"},{"title":"Events","href":"/events","text":"Worldwide community events"},{"title":"Community","href":"https://community.mongodb.com","text":"The MongoDB Community discussion forums"}]},{"title":"Solutions","links":[{"title":"Customers","text":"Who uses MongoDB","href":"/who-uses-mongodb"},{"title":"Use Cases","text":"How MongoDB is used","href":"/use-cases"},{"title":"Consulting","text":"Accelerate success with MongoDB","href":"/products/consulting"},{"title":"Partners","text":"Find or become a partner","href":"/partners"}]},{"title":"Docs","links":[{"title":"Cloud","text":"Atlas, Realm, and more","href":"https://docs.mongodb.com/cloud/"},{"title":"Server","href":"https://docs.mongodb.com/manual/","text":"The database"},{"title":"Drivers","text":"Language APIs","href":"https://docs.mongodb.com/ecosystem/drivers/"},{"title":"Tools","text":"Compass, Charts, Connectors, and more","href":"https://docs.mongodb.com/tools/"},{"title":"How to Guides","text":"Get started in minutes","href":"https://docs.mongodb.com/guides/"}]}],"right":[{"title":"Contact","href":"/contact","button":false},{"title":"Sign In","href":"https://cloud.mongodb.com/user","button":false},{"title":"Try Free","href":"/try","button":true}],"mobile":[{"text":"Contact","href":"/contact"}],"navType":"","banner":{"bannerText":"","bannerHref":"","bannerType":"","bannerTheme":"","pillText":"","href":"","items":[]},"notSticky":false},"id":"989b8ca6-b587-4fef-be63-c030fa7b4cac"},{"key":"Header","props":{"h1":"DB 管理システムにおける<br>ACID 特性のガイド","titleColor":0,"content":"","cta":{"href":"https://www.mongodb.com/cloud/atlas/register","text":"無料トライアル","openInNewWindow":true,"faux":false,"text#localised":true},"cta2":{"href":"","text":"","openInNewWindow":false,"faux":false},"imgsrc":"https://webassets.mongodb.com/_com_assets/cms/header-au039oiqsr.svg","bgColor":"","bgImage":"","h1#localised":true},"id":1658930811782},{"key":"Article","props":{"content":"リアルタイムアプリケーションやモノのインターネット(IoT)デバイスの利用、さらに非構造化データ資産の急激な増加により、企業の NoSQL データベースへの移行は増加の一途をたどっています。2024年にIMARCグループが発表した調査レポートでは、NoSQL 市場は 2032 年までに 745 億米ドルに達し、2024 年から 2032 年までの成長率(CAGR)は 24.9% に達すると予測されています。\n\nNoSQL データベース管理システム(DBMS)が、大規模で多様なデータセットやそれに関連するビッグデータ分析を効果的に管理できることを考慮すると、この成長は驚くべきことではありません。しかし、NoSQL DBMS は多くの組織にとって重要な要件である ACID トランザクション管理やコンプライアンスに対応できていないと考える人もまだ多く存在します。よいニュースとして、実際には一部の NoSQL DBMS は、この問題に対応していることがわかっています。\n\n本記事では、ACID トランザクションとは何か、ACID トランザクションの特性、これらのトランザクションが重要な理由、また、NoSQL DBMS における ACID トランザクションのユースケースについて説明します。\n\n<p><strong>目次\u003C/strong>\n\u003C/p><ul class=\"bullets\"><li><a target=\"_self\" href=\"#what-are-acid-transactions\">ACID トランザクションとは\u003C/a>\n\u003C/li><li><a target=\"_self\" href=\"#why-are-acid-transactions-important\">ACID トランザクションが重要な理由\u003C/a>\n\u003C/li><li><a target=\"_self\" href=\"#acid-transaction-example-in-dbms\">DBMS におけるACIDトランザクションの例\u003C/a>\u003C/li>\n<li><a target=\"_self\" href=\"#how-do-acid-transactions-work-in-mongodb\">MongoDB におけるACID トランザクションの仕組み\u003C/a>\u003C/li>\n<li><a target=\"_self\" href=\"#when-should-i-use-mongodb-multidocument-transactions\">MongoDB のマルチドキュメントトランザクションの最適なユースケース\u003C/a>\u003C/li>\n<li><a target=\"_self\" href=\"#what-are-the-best-practices-for-transactions-in-mongodb\">MongoDB におけるトランザクションのベストプラクティス\u003C/a>\u003C/li>\n<li><a target=\"_self\" href=\"#next-steps\">次のステップ\u003C/a>\u003C/li>\n<li><a target=\"_self\" href=\"#faqs\">よくある質問\u003C/a>\u003C/li>\u003C/ul>\n\n\n","textalign":"","background":"","content#localised":true},"id":1632854049455},{"key":"Article","props":{"content":"##ACID トランザクションとは\n\n<br>\n\n###トランザクションの説明\n最も基本的なレベルでは、データベーストランザクションは、DBMS の定義(定義されたトランザクション基準など)に従って正常に完了したデータベースの読み取りおよび書き込み操作のグループです。トランザクションには主に 2 つのタイプがあります。\n\n- **<strong>シングルトランザクション<strong>**:シングルトランザクションとは、1 つのアクションが正常に完了する一連の 1 つ以上のデータベース操作のことです。完了すると、トランザクションは受理され、トランザクションログに記録されます。シングルトランザクションの一般的な例は、ATM からの現金の引き出しです。\n\n- **マルチトランザクション**:マルチトランザクション(分散トランザクションとも呼ばれる)は、異なるデータベースやシステムにまたがる複数の相互依存するトランザクションで構成されます。例えば、分散システムなどがあります。これらのトランザクションの記録はトランザクションログにもあります。このようなトランザクションの例としては、ある口座から別の口座への送金や、雇用主が新入社員に写真付きのセキュリティバッジを発行することなどがあります。\n\n一部のトランザクションは、データの完全性(例:データが正確で完全であること)やデータの一貫性(例:値が全てのテーブルやデータベースで一致していること)の厳格な基準に従う必要があることを理解しておくことが重要です。このようなケースは、受託者責任や規制遵守が関係する場合によく見られます。例えば、商業銀行業務、投資仲介、法的決済などです。このような状況では、DBMS の定義に標準的に従うだけでは不十分で、ACID トランザクションが必要になります。このような状況では、DBMS の定義に標準的に従うだけでは不十分で、ACID トランザクションが必要になります。\n","textalign":"","background":"","content#localised":true},"id":1632854073231},{"key":"Article","props":{"content":"\n###ACID トランザクション\nACID とは、atomicity(原子性)、consistency(一貫性)、isolation(独立性)、durability(永続性)の頭文字をとったものです。ACID プロパティは、予期しないエラーが発生した場合でも、一連のデータベース操作(トランザクションでグループ化)が有効な状態でデータベースを残すことを保証します。さらに、ACID トランザクションは、多くの規制機関が要求するレベルのトランザクション保証を提供します。\n\n以下は、各 ACID トランザクション要素の概要と、NoSQ Lドキュメントデータベースがその ACID 要素を処理する方法についての説明です。本記事では、[MongoDB Atlas](https://www.mongodb.com/ja-jp/products/capabilities/transactions) を使用します。\n\n<br> \n\n####原子性(Atomicity)\n原子性は、トランザクションを構成するすべてのコマンドが 1 つの単位として扱われ、成功または失敗が一貫して処理されることを保証します。これはシステム障害や停電が発生した場合に重要で、トランザクションが完全に処理されなかった場合は破棄され、データベースはデータの整合性を維持します。\n\n<br>\n\n<u>MongoDB における原子性の処理:\u003C/u> MongoDB では、書き込み操作は単一のドキュメントレベルで原子性が保証されます。たとえその操作が複数の埋め込まれたドキュメントを変更する場合でも、単一のドキュメント内では原子性が保たれます。複数のドキュメントへの読み書きが同一のコレクションまたは複数のコレクション内で必要な場合は、MongoDB は分散トランザクションをサポートし、レプリカセットやシャードクラスタでのトランザクションも含まれます。\n\n<br>\n\n####一貫性(Consistency)\n一貫性とは、トランザクション内で行われた変更がデータベースシステム(ノードなど)全体に反映され、DBMS の制約と一致していることを保証するものです。トランザクションが不整合な状態にある場合、その影響でデータの一貫性が損なわれると、トランザクション全体が失敗します。\n\n<u>MongoDB における一貫性の処理:\u003C/u> MongoDB は、アプリケーションを最適化するためにデータの正規化や複製を行う柔軟性を提供します。スキーマ内でデータが重複している場合は、開発者は重複データを複数のコレクションで一貫性を保つ方法を決定する必要があります。アプリケーションによっては、重複したデータをすぐに一貫性を持たせる必要があります。一方で、他のアプリケーションでは古いデータを読み取ることが許容される場合もあります。以下に例を示します。\n","textalign":"","background":"","content#localised":true},"id":1632854339388},{"key":"Table","props":{"title":"","content":"","mobileComparison":true,"alignment":1,"cellAlign":1,"bg":0,"width":0,"headings":[{"header":"メソッド","promoted":false,"tooltip":"","columnWidth":"","header#localised":true},{"header":"概要","promoted":false,"tooltip":"","columnWidth":"","header#localised":true},{"header":"パフォーマンスへの影響度","promoted":false,"tooltip":"","columnWidth":"","header#localised":true},{"header":"推奨される活用方法","tooltip":"","promoted":false,"columnWidth":"","header#localised":true}],"table":[{"row":[{"cell":"[トランザクション](https://www.mongodb.com/ja-jp/docs/manual/core/transactions/#std-label-transactions)","cell#localised":true},{"cell":"複数のコレクションへの更新を単一のアトミック操作で実行する","cell#localised":true},{"cell":"高(読み取り競合による)","cell#localised":true},{"cell":"アプリケーションが常に最新のデータを返す必要があり、読み取りが多い状況での潜在的なパフォーマンス低下を許容できる場合に適している。","cell#localised":true}]},{"row":[{"cell":"[関連データの埋め込み](https://www.mongodb.com/ja-jp/docs/manual/data-modeling/concepts/embedding-vs-references/#std-label-data-modeling-embedding)","cell#localised":true},{"cell":"アプリケーションスキーマを変更して、関連データを単一のコレクションに埋め込む","cell#localised":true},{"cell":"低~中程度(文書サイズとインデックスによる)","cell#localised":true},{"cell":"アプリケーションが関連データを常に同時に読み書きする場合に適しており、スキーマを簡素化し、[$lookup](https://www.mongodb.com/ja-jp/docs/manual/reference/operator/aggregation/lookup/#mongodb-pipeline-pipe.-lookup)操作を不要にする。","cell#localised":true}]},{"row":[{"cell":"[Atlas Database Triggers](https://www.mongodb.com/ja-jp/docs/atlas/app-services/triggers/database-triggers/)","cell#localised":true},{"cell":"あるコレクションで更新が発生すると、トリガーは自動的に別のコレクションを更新する","cell#localised":true},{"cell":"低~中程度(トリガーイベントの処理に遅延が発生する可能性あり)","cell#localised":true},{"cell":"アプリケーションがやや古いデータの読み取りを許容できる場合に適しており、更新直後にクエリを実行すると、トリガーが 2 つ目のコレクションを更新する前のデータが表示される可能性がある。","cell#localised":true}]}],"bgColor":"","bgImage":"","subscript":"","content#localised":false},"id":1720718799528},{"key":"Article","props":{"content":"注: データの一貫性については、[こちら](https://www.mongodb.com/ja-jp/docs/manual/data-modeling/data-consistency/)をご覧ください。\n\n<br>\n\n####独立性(Isolation)\n各トランザクションは、データの競合を防ぐために、他のトランザクションから独立しています。これはまた、複数エントリや複数レベルのトランザクションの管理に関連するデータベース操作にも役立ちます。例えば、2 人のユーザーが同じデータ(あるいは同じトランザクション)を変更しようとしている場合は、DBMS はロックマネージャーと呼ばれるメカニズムを使って、最初のユーザーによる変更が完了するまで他のユーザーを一時停止させます。\n\n<br>\n\n<u>MongoDB における独立性の処理:\u003C/u> MongoDBは「スナップショット独立性」と呼ばれる技術を採用しています(例えば、各トランザクションは、トランザクション開始時に撮影されたデータベースの個別のスナップショットで操作されるように見えます)。トランザクションは、トランザクション開始時にコミットされたデータの「スナップショット」からデータを読み込むことができ、競合する更新があった場合には、そのトランザクションは中断されます。\n\nさらに、MongoDB のトランザクションは[トランザクションレベルの読み込み](https://www.mongodb.com/ja-jp/docs/manual/core/transactions/#transactions-and-read-concern) と[書き込み](https://www.mongodb.com/ja-jp/docs/manual/core/transactions/#transactions-and-write-concern)をサポートしています。クライアントは適切なレベルの読み込みと書き込みを設定できますが、最も厳密なのはスナップショット読み込みと多数派書き込みの組み合わせです。過半数の書き込みに関する懸念とは、書き込み操作がデータ保持ノードの計算上の過半数(開発者が設定可能)に持続的にコミットされていることを意味します。\n\n<br>\n\n####永続性(Durability)\n永続性は、トランザクションが完了し、変更がデータベースに書き込まれると、それが永続化されることを保証します。これにより、クラッシュや停電のようなシステム障害が発生した場合でも、システム内のデータが持続することが保証されます。永続性の概念は、データの信頼性において重要な要素です。\n\n<br>\n\n<u>MongoDB における永続性の処理:\u003C/u>MongoDB は、各「書き込み」で変更されたディスクの場所とバイト数を含む OpLog を作成します。トランザクションの書き込み中に不測の事態(停電など)が発生した場合は、システムが再起動したときに OpLog を使って、シャットダウン前にディスクにフラッシュされなかった書き込みを再生することができます。さらに、操作は OpLog に書き込まれる前に変更されるため、冪等であり、何度も再試行することができます。トランザクションや「書き込み」は、デフォルトではおよそ 60 秒ごとにディスクにフラッシュされます。","textalign":"","background":"","content#localised":true},"id":1658930977967},{"key":"Article","props":{"content":"##ACID トランザクションが重要な理由\nACID トランザクションは、データの整合性と信頼性の維持に役立つと同時に、政府または業界の規制の対象となる重要なデータ(銀行口座、株式ポートフォリオなど)が要求される基準を満たすことを保証します。さらに、ACID準拠は、データのレプリケーションを実装し、分散データベースシステムで高可用性を実現するための前提条件であることがよくあります。\n","textalign":"","background":"","content#localised":true},"id":1658931012436},{"key":"Article","props":{"content":"##DBMS における ACID トランザクションの例\nNoSQL ドキュメントデータベース MongoDB Atlas を使って、ACID マルチドキュメントトランザクションがどのように処理され、ACID トランザクションがどのように最小 ACID プロパティ標準へのアラインメントを保証するかの例を示します。\n","textalign":"","background":"","content#localised":true},"id":1722288152601},{"key":"Article","props":{"content":"###ACID マルチドキュメントトランザクション\n例えば、ある銀行口座から別の銀行口座に送金する機能を作成しているとします。送金元口座から送金されたお金が、送金先口座に入金されなかった場合は、深刻な会計上の問題が発生します。逆に、送金先口座には入金されたのに、送金元口座からは一度も引き落とされなかった場合には、別の深刻な会計上の問題が発生します。\n\n\n\n<br>\n\n<p align=center>\n\n![ACIDの特性が、ある銀行口座から別の銀行口座への送金の流れにどのような影響を与えるかを示す図](https://webimages.mongodb.com/_com_assets/cms/l5vhrmvicbxj4o8am-image1.png?auto=format%252Ccompress)\nこの図は、ACID の特性が、ある銀行口座から別の銀行口座への送金の流れにどのような影響を与えるかを示しています。\n\u003C/p>\n\n<br>\n\nこの 2 つの書き込み操作は、システムとデータの一貫性を保つために、両方が実行されるか、両方とも実行されないかのどちらかでなければなりません。さらにこれは、トランザクションのいずれかのコマンドが失敗した場合には、データベースはトランザクションの過程で書き込まれた全ての変更をロールバック(元に戻すなど)が必要なことを意味します。","textalign":"","background":"","content#localised":true},"id":1632854441611},{"key":"Article","props":{"content":"\n\n<br>\n\n<p align=\"center\">\n![GitHubから、mongodbとパートナーシップを組んでいるサンプルコード](https://webimages.mongodb.com/_com_assets/cms/lyhjprfyhwrddbgnn-image1.png?auto=format%252Ccompress)\n\u003C/p>\n\n備考:詳しくは、 [Node.js クイックスタート GitHub リポジトリ](https://github.com/mongodb-developer/nodejs-quickstart/blob/master/transaction-bankingexample.js)をご確認ください。完全なコードサンプルのコピーを取得して実行できます。\n\n<br>\n\n###影響を考慮するポイント\n分散システムでマルチドキュメントトランザクションを扱う場合は、パフォーマンスにオーバーヘッドが発生し、リソース制約やパフォーマンス目標に影響を与える可能性があることを覚えておくことが重要です。さらに、データベースはリソースを「ロック」して、トランザクションの失敗を防ぐためなど、並行して行われる書き込み操作が干渉しないようにする必要がある場合は、データを書き込もうとする他のクライアントがトランザクションの完了を待たされることがあります。このため、アプリケーションのレイテンシやユーザー体験に影響が出る可能性があります。\n","textalign":"","background":"","content#localised":true},"id":1720719104457},{"key":"Article","props":{"content":"##MongoDB における ACID トランザクションの仕組み\nMongoDB のドキュメントモデルでは、関連するデータを 1 つのドキュメントにまとめて保存できます。このドキュメントモデルと原子性を持つドキュメント更新を組み合わせることで、大多数のユースケースではトランザクションを使用する必要がなくなります。しかし、本当の意味でのマルチドキュメント、マルチコレクションの MongoDB トランザクションが最適な選択となる場合もあります。\n\nMongoDB のトランザクションは、他のデータベースのトランザクションと同じように動作します。トランザクションを使うには、ドライバーで MongoDB セッションを開始します。その後、そのセッションを使用してデータベース操作を実行します。複数のドキュメントやコレクション、シャードに対して CRUD(作成、読み込み、更新、削除)操作を実行できます。\n\nトランザクションを実装する具体的なコードサンプルは、MongoDB Developer Center の クイックスタートを参照ください。\n\n- [Golang による MongoDB のマルチドキュメント ACID トランザクション](https://www.mongodb.com/developer/languages/go/golang-multi-document-acid-transactions/)\n- [Java による MongoDB のマルチドキュメント ACID トランザクション](https://www.mongodb.com/developer/languages/java/java-multi-doc-acid-transactions/)\n- [Node.js による MongoDB のマルチドキュメント ACID トランザクション](https://www.mongodb.com/developer/languages/javascript/node-transactions-3-3-2/)\n- [Python による MongoDB のマルチドキュメント ACID トランザクション](https://www.mongodb.com/developer/languages/python/python-acid-transactions/)\n\nMongoDB が公式にサポートしている各言語のガイドについては [MongoDB ドライバーのドキュメント](https://www.mongodb.com/ja-jp/docs/drivers/) を参照ください。また、トランザクションのベストプラクティスと運用上の注意の一覧は、[こちら](https://www.mongodb.com/ja-jp/docs/manual/core/transactions-operations/)をご覧ください。","textalign":"","background":"","content#localised":true},"id":1632857804510},{"key":"Article","props":{"content":"##MongoDBのマルチドキュメントトランザクションが最適なユースケース\nトランザクションを必要とするアプリケーションは通常、異なる当事者間で値を交換するユースケースを持ちます。これらは通常、「記録管理システム」または「基幹業務(LOB)」アプリケーションです。\n\nマルチドキュメントトランザクションの恩恵を受ける可能性のあるアプリケーションの例には、次のようなものがあります。\n\n- **ある口座から別の口座に資金を移動するシステム(銀行アプリケーション、支払処理システム、取引プラットフォームなど)。\n\r\n- **商品やサービスの所有権がある当事者から別の当事者に移転されるサプライチェーンや予約システム。\n\r\n- **詳細記録と概要記録で情報を保存する請求システム。","textalign":"","background":"","content#localised":true},"id":1632857980947},{"key":"Article","props":{"content":"##MongoDB におけるトランザクションのベストプラクティス\n一般的に、同時にアクセスされるデータは、同じところに格納するようにデータをモデリングすることが推奨されます。このようにデータをモデル化すると、パフォーマンスが向上するだけでなく、トランザクションが不要になります。\n\nトランザクションを必要とするアプリケーションでは、以下のベストプラクティスを遵守してください。\n\n- **デフォルトの 60 秒のタイムアウトを超えないように、長時間実行するトランザクションを分割します。(このタイムアウトは延長可能です) トランザクション内の操作がインデックスを使用していることを確認し、迅速に実行されるようにしてください。\n\n- **各トランザクションのドキュメントの修正は1,000件以内に制限します。\n\n- **[適切な 読み取りおよび書き込み](https://www.mongodb.com/ja-jp/docs/manual/core/transactions/#read-concern-write-concern-read-preference) の設定を行うようにします。(MongoDB 5.0 以降では、 [デフォルトで「多数派書き込み」](https://mongodb.com/blog/post/default-majority-write-concern-providing-stronger-durability-guarantees-out-box))に設定されています。)\n\n- **適切なエラー処理を実装し、一時的なエラーによって失敗したトランザクションを再試行します。\n\n- **複数のシャードに影響を与えるトランザクションはパフォーマンスにコストがかかる点を忘れないようにしてください。\nこれらのベストプラクティスについて詳しくは、[MongoDB ホワイトペーパー「MongoDB のマルチドキュメント ACID トランザクション」](https://www.mongodb.com/resources/products/capabilities/mongodb-multi-document-acid-transactions)や、トランザクションについての [MongoDB ドキュメント](https://www.mongodb.com/ja-jp/docs/manual/core/transactions/)を参照ください。\n","textalign":"","background":"","content#localised":true},"id":1632858125848},{"key":"Article","props":{"content":"##次のステップ \n詳しくは、[MongoDB Atlas](https://mongodb.com/cloud/atlas/register) をお試しください。MongoDB Atlas は、MongoDB のサービスとして完全に管理されたデータベースで、MongoDB を使い始める最も簡単な方法です。[MongoDB Atlas クラスタを無料で作成](https://www.mongodb.com/products/platform/cloud)して、トランザクションの利用を開始できます。","textalign":"","background":"","content#localised":true},"id":1722289133726},{"key":"Article","props":{"content":"##よくあるご質問\n","textalign":"","background":"","content#localised":true},"id":1632858419905},{"key":"Details","props":{"items":[{"titleColor":0,"title":"マルチドキュメントトランザクションとは何ですか?","text":"分散トランザクションと呼ばれることもあるマルチドキュメントトランザクションは、異なるデータベースやシステムにまたがる、相互に依存する複数のトランザクションで構成されます。","title#localised":true,"text#localised":true},{"titleColor":0,"title":"ACID トランザクションとは何ですか?","text":"ACID トランザクションとは、ACID の特性に沿ったデータベースシステムにおける一連の操作のことです。","title#localised":true,"text#localised":true},{"titleColor":0,"title":"トランザクションの ACID 特性とは何ですか?","text":"ACID の 4 つの重要な特性は、原子性、一貫性、独立性、永続性です。","title#localised":true,"text#localised":true}],"bgColor":"","bgImage":""},"id":1632858430356},{"key":"Footer","props":{"toggle":0,"column1":{"title":"Resources","maxWidth":"185","hasIcons":0,"className":"","items":[{"href":"/nosql-explained","text":"NoSQL Database Explained","isTarget":""},{"href":"/collateral/mongodb-architecture-guide","text":"MongoDB Architecture Guide","isTarget":""},{"href":"/products/mongodb-enterprise-advanced","text":"MongoDB Enterprise Advanced","isTarget":""},{"href":"/cloud/atlas","text":"MongoDB Atlas","isTarget":""},{"href":"/cloud/stitch","text":"MongoDB Stitch","isTarget":""},{"href":"//engineering.mongodb.com/","text":"MongoDB Engineering Blog","isTarget":"true"}]},"column2":{"title":"Education & Support","maxWidth":"150","hasIcons":0,"className":"","items":[{"href":"//university.mongodb.com/courses/catalog","text":"View Course Catalog","isTarget":"true"},{"href":"//university.mongodb.com/certification","text":"Certification","isTarget":"true"},{"href":"//docs.mongodb.com/manual/","text":"MongoDB Manual","isTarget":"true"},{"href":"//docs.mongodb.com/manual/installation/","text":"Installation","isTarget":"true"},{"href":"//support.mongodb.com/welcome","text":"Support","isTarget":""},{"href":"/faq","text":"FAQ","isTarget":""}]},"column3":{"title":"Popular Topics","maxWidth":"300","hasIcons":0,"className":"be-ix-link-block","items":[{"href":"/cloud/atlas/aws-mongodb","text":"MongoDB on AWS","isTarget":""},{"href":"/cloud/atlas/mongodb-google-cloud","text":"MongoDB on Google Cloud","isTarget":""},{"href":"/cloud/atlas/multicloud-data-distribution","text":"Run MongoDB on Multiple Clouds with MongoDB Atlas","isTarget":""},{"href":"/cloud/atlas/migrate","text":"Migrate to MongoDB Atlas","isTarget":""},{"href":"/cloud-database","text":"What is a Cloud Database?","isTarget":""},{"href":"/blog/post/building-a-rest-api-with-mongodb-stitch","text":"Building a REST API with MongoDB Stitch","isTarget":""}]},"column4":{"title":"About","maxWidth":"100","hasIcons":0,"className":"","items":[{"href":"/company","text":"MongoDB, Inc.","isTarget":""},{"href":"/leadership","text":"Leadership","isTarget":""},{"href":"/pressroom","text":"Press Room","isTarget":""},{"href":"/careers","text":"Careers","isTarget":""},{"href":"https://investors.mongodb.com","text":"Investors","isTarget":""},{"href":"/legal/legal-notices","text":"Legal Notices","isTarget":""},{"href":"/legal/privacy-policy","text":"Privacy Notice","isTarget":""},{"href":"/security","text":"Security Information","isTarget":""},{"href":"/cloud/trust","text":"Trust Center","isTarget":""},{"href":"/office-locations","text":"Office Locations","isTarget":""},{"href":"/community-code-of-conduct","text":"Code of Conduct","isTarget":""}]},"column5":{"title":"Follow Us","maxWidth":"120","hasIcons":1,"className":"","items":[{"href":"//facebook.com/mongodb","text":"Facebook","isTarget":"true"},{"href":"//github.com/mongodb","text":"Github","isTarget":"true"},{"href":"//youtube.com/user/mongodb","text":"Youtube","isTarget":"true"},{"href":"//twitter.com/mongodb","text":"Twitter","isTarget":"true"},{"href":"//www.linkedin.com/company/mongodbinc/","text":"LinkedIn","isTarget":"true"},{"href":"//slackpass.io/mongo-db","text":"Slack","isTarget":"true"},{"href":"//stackoverflow.com/tags/mongodb/info","text":"StackOverflow","isTarget":"true"}]}},"id":"482ecd82-e13d-4d06-af9f-8b7eb49ee32a"}],"created_at":"2021-09-28T18:21:21.986Z","meta":{"title":"DBMS における ACID 特性の概要|MongoDB","description":"ACID 特性は、データベース管理システム(DBMS)におけるトランザクションの重要な要素です。本記事では、ACID の重要な 4 つの要素、原子性、一貫性、独立性、永続性について解説します。","title#localised":true,"description#localised":true},"node_type":"content_block","owners":[],"published_at":"2021-09-28T19:54:14.042Z","status":"published","updated_at":"2024-11-26T21:39:43.429Z","cms":{"editedURL":true},"draft":true,"globals":[{"_id":"6001f22ac1f95e773a0e0044","key":"AccountLogin","created_at":"2021-01-15T19:51:06.717Z","props":{"title":"MongoDB Stands with the Black Community, changes","subtitle":"Join MongoDB in supporting organizations that are fighting for racial justice and equal opportunity","cta":{"text":"Join Now","href":"https://mongodbforjustice.mongodb.events/","openInNewWindow":false,"faux":false},"image":{"desktop":"https://account.mongodb.com/static/images/auth/racial_justice_desktop_login.png","mobile":"https://account.mongodb.com/static/images/auth/racial_justice_mobile.png"},"artist":"Artwork by [Lo Harris](http://loharris.com/)"},"updated_at":"2024-10-21T20:11:05.302Z"},{"_id":"601c7536f53e6b3af09679d3","key":"PromoBanner","created_at":"2021-02-04T22:29:10.420Z","props":{"type":4,"typeColor":0,"title":"Join us at AWS re:Invent 2024! Learn how to use MongoDB for AI use cases. Learn more >>","href":"https://www.mongodb.com/events/aws-reinvent?tck=pencil_banner","titleColor":0,"background":1,"disabled":false,"eventBranded":false,"eventBrandedButtonImg":0},"updated_at":"2024-10-21T20:11:05.312Z","translations":{"en-us":{"title":"Join us at AWS re:Invent 2024! Learn how to use MongoDB for AI use cases. Learn more >>","href":"https://www.mongodb.com/events/aws-reinvent?tck=pencil_banner","eventBranded":false,"disabled":false,"type":4,"eventBrandedButtonImg":0,"typeColor":0,"background":1,"titleColor":0},"pt-br":{"title":"Register for MongoDB.live today!","type":0,"titleColor":0},"es":{"title":"Register for MongoDB.live today!"},"it-it":{"title":"Register for MongoDB.live today!"},"de-de":{"title":"Register for MongoDB.live today!"},"fr-fr":{"title":"Register for MongoDB.live today!"},"ja-jp":{"title":"Register for MongoDB.live today!"},"ko-kr":{"title":"Register for MongoDB.live today!"},"zh-cn":{"title":"Register for MongoDB.live today!"}}},{"_id":"60c127b5527761a42edca7bb","key":"TranslationFallbackBanner","created_at":"2021-06-09T20:42:29.953Z","updated_at":"2024-10-21T20:11:05.319Z","props":{"text":"The contents of this page are not currently available in the selected language. However, we are committed to providing as much localized content as possible. Thanks for your patience."},"translations":{"en-us":{"text":"The contents of this page are not currently available in the selected language. However, we are committed to providing as much localized content as possible. Thanks for your patience."},"pt-br":{"text":"O conteúdo desta página não está disponível no idioma selecionado no momento. No entanto, estamos comprometidos em oferecer o máximo de conteúdo localizado possível. Agradecemos a paciência."},"es":{"text":"El contenido de esta página no está disponible actualmente en el idioma seleccionado. Sin embargo, nos comprometemos a proporcionar la mayor cantidad de contenido localizado posible. Gracias por tu paciencia."},"it-it":{"text":"I contenuti di questa pagina non sono attualmente disponibili nella lingua selezionata. Tuttavia, ci impegniamo a fornire il maggior numero possibile di contenuti localizzati. Grazie per la pazienza."},"de-de":{"text":"Die Inhalte dieser Seite sind derzeit nicht in der gewählten Sprache verfügbar. Wir arbeiten jedoch daran, so viele lokalisierte Inhalte wie möglich bereitzustellen. Vielen Dank für Ihre Geduld."},"fr-fr":{"text":"Le contenu de cette page n'est actuellement pas disponible dans la langue sélectionnée. Nous mettons toutefois tout en œuvre pour proposer autant de contenu localisé que possible. Merci de votre patience."},"ja-jp":{"text":"現在、このページの選択した言語のコンテンツはありません。ローカライズされたコンテンツをできるだけ多く提供できるよう取り組んでいます。しばらくお待ちください。"},"ko-kr":{"text":"본 페이지 컨텐츠는 현재 선택된 언어로는 볼 수 없습니다. 가능한 빨리 현지화된 컨텐츠를 제공해 드리기 위해 노력하고 있습니다. 기다려 주셔서 감사합니다."},"zh-cn":{"text":"本页面内容目前不支持所选语言。我们将尽可能提供更多的本地化内容。敬请期待。"}}},{"_id":"616eeecda9b8227a40aa618c","key":"DTRolloutComponent","props":{"targetAudience":"100"},"created_at":"2021-10-19T16:14:05.400Z","updated_at":"2024-10-21T20:11:05.326Z"},{"_id":"653956df6e40c7d11245d051","key":"PencilBanner","props":{"pillText":"Event","disabled":false,"bannerTheme":0,"theme":"forestGreen","bannerText":"Join us at AWS re:Invent 2024! Learn how to use MongoDB for AI use cases. <mark>Learn more >>\u003C/mark>","href":"https://www.mongodb.com/events/aws-reinvent?tck=pencil_banner","items":[]},"created_at":"2023-10-20T17:42:11.857Z","updated_at":"2024-10-21T20:11:05.334Z","translations":{"en-us":{"theme":"forestGreen","pillText":"Event","bannerText":"Join us at AWS re:Invent 2024! Learn how to use MongoDB for AI use cases. <mark>Learn more >>\u003C/mark>","href":"https://www.mongodb.com/events/aws-reinvent?tck=pencil_banner","bannerTheme":0,"disabled":false},"pt-br":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"},"es":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"},"it-it":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"},"de-de":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"},"fr-fr":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"},"ja-jp":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"},"ko-kr":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"},"zh-cn":{"bannerText":"MongoDB World is back in NYC June 7 - 9!"}}}],"locale":"ja-jp","saved_by":{"_id":"66d75f2ed870d3001a6d65cc","user_name":"sayaka.bishop","permissions":{"roles":["Content Basic","Translation"],"node_types":[{"type":"content_block","actions":["draft"]},{"type":"blog_post","actions":["draft"]}],"documents":[],"collections":[]}},"tag_ids":["60cb6791cad1730d6d6f39c4"],"updateHistory":[{"time":"2021-09-28T18:31:40.691Z","user_name":"fiona.erickson","versionMessage":"acid transactions update"},{"time":"2021-09-28T19:52:39.384Z","user_name":"fiona.erickson","versionMessage":"acid transactions update"},{"time":"2021-09-28T19:53:39.089Z","user_name":"fiona.erickson","versionMessage":"acid transactions update"},{"time":"2021-09-28T19:54:14.042Z","user_name":"fiona.erickson","versionMessage":"acid transactions update"},{"time":"2021-09-30T18:26:45.362Z","user_name":"fiona.erickson","versionMessage":"acid transactions update"},{"time":"2022-07-27T14:23:26.394Z","user_name":"eric.gamble","versionMessage":"acid transactions update"},{"time":"2022-07-27T14:24:55.246Z","user_name":"eric.gamble","versionMessage":"acid transactions update"},{"time":"2022-07-27T14:25:16.550Z","user_name":"eric.gamble","versionMessage":"acid transactions update"},{"time":"2022-08-24T13:20:50.555Z","user_name":"stef.falkowski","versionMessage":"updated broken link"},{"time":"2022-11-02T16:44:54.936Z","user_name":"michaleen.craig","versionMessage":"updated typo (dupe paragraph)"},{"time":"2024-07-04T17:30:36.863Z","user_name":"iuliia.shyshkina","versionMessage":"WEBSITE-16884 updated page "},{"time":"2024-07-30T20:32:22.341Z","user_name":"eric.gamble","versionMessage":"surferseo update"},{"time":"2024-07-30T20:39:20.868Z","user_name":"eric.gamble","versionMessage":"surferseo update"},{"time":"2024-11-22T01:52:30.159Z","user_name":"sayaka.bishop","versionMessage":"database_acid-transactions_20241121_01"},{"time":"2024-11-22T21:15:54.916Z","user_name":"sayaka.bishop","versionMessage":"database_acid-transactions_20241122-01"},{"time":"2024-11-22T21:45:19.374Z","user_name":"sayaka.bishop","versionMessage":"database_acid-transactions_20241122-01"},{"time":"2024-11-22T21:54:17.981Z","user_name":"sayaka.bishop","versionMessage":"database_acid-transactions_20241122-01"},{"time":"2024-11-22T21:55:51.006Z","user_name":"sayaka.bishop","versionMessage":"database_acid-transactions_20241122-01"},{"time":"2024-11-22T21:57:33.264Z","user_name":"sayaka.bishop","versionMessage":"database_acid-transactions_20241122-01"},{"time":"2024-11-26T21:39:43.429Z","user_name":"sayaka.bishop","versionMessage":"database_acid-transactions_20241122-01"}],"versionMessage":"database_acid-transactions_20241122-01","original_document":"61535d22837c94d5a3da4bc1","localised":true}]}</script> <script> var script = document.createElement('script'); script.src = "https://d2c7xlmseob604.cloudfront.net/tracker.min.js"; script.onload = function() { SmartlingContextTracker.init({ orgId: '7v+wvebTu7n8KdlwsG2ojQ', }); } document.body.append(script); </script> </html>

Pages: 1 2 3 4 5 6 7 8 9 10