CINXE.COM
NoSQL Database Features | ACID DB | Document Database
<!doctype html> <html lang="en-US" style="scroll-behavior: smooth; background-color: #22252b; scroll-padding-top: 25px;"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, shrink-to-fit=no"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <link rel="apple-touch-icon" sizes="57x57" href="https://ravendb.net/wp-content/themes/ravendb/images/favicon/apple-icon-57x57.png"> <link rel="apple-touch-icon" sizes="60x60" href="https://ravendb.net/wp-content/themes/ravendb/images/favicon/apple-icon-60x60.png"> <link rel="apple-touch-icon" sizes="72x72" href="https://ravendb.net/wp-content/themes/ravendb/images/favicon/apple-icon-72x72.png"> <link rel="apple-touch-icon" sizes="76x76" href="https://ravendb.net/wp-content/themes/ravendb/images/favicon/apple-icon-76x76.png"> <link rel="apple-touch-icon" sizes="114x114" href="https://ravendb.net/wp-content/themes/ravendb/images/favicon/apple-icon-114x114.png"> <link rel="apple-touch-icon" sizes="120x120" href="https://ravendb.net/wp-content/themes/ravendb/images/favicon/apple-icon-120x120.png"> <link rel="apple-touch-icon" sizes="144x144" href="https://ravendb.net/wp-content/themes/ravendb/images/favicon/apple-icon-144x144.png"> <link rel="apple-touch-icon" sizes="152x152" href="https://ravendb.net/wp-content/themes/ravendb/images/favicon/apple-icon-152x152.png"> <link rel="apple-touch-icon" sizes="180x180" href="https://ravendb.net/wp-content/themes/ravendb/images/favicon/apple-icon-180x180.png"> <link rel="icon" type="image/png" sizes="192x192" href="https://ravendb.net/wp-content/themes/ravendb/images/favicon/android-icon-192x192.png"> <link rel="icon" type="image/png" sizes="32x32" href="https://ravendb.net/wp-content/themes/ravendb/images/favicon/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="96x96" href="https://ravendb.net/wp-content/themes/ravendb/images/favicon/favicon-96x96.png"> <link rel="icon" type="image/png" sizes="16x16" href="https://ravendb.net/wp-content/themes/ravendb/images/favicon/favicon-16x16.png"> <link rel="manifest" href="https://ravendb.net/wp-content/themes/ravendb/images/favicon/manifest.json"> <meta name="msapplication-TileColor" content="%23cf1f5d"> <meta name="msapplication-TileImage" content="https://ravendb.net/wp-content/themes/ravendb/images/favicon/ms-icon-144x144.png"> <meta name="theme-color" content="%23cf1f5d"> <link rel="stylesheet" href="https://ravendb.net/wp-content/themes/ravendb/style.css"> <link rel="pingback" href="https://ravendb.net/xmlrpc.php"> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-TDH4JWF2');</script> <!-- End Google Tag Manager --> <link data-minify="1" rel="preload" href="https://ravendb.net/wp-content/cache/min/1/wp-content/themes/ravendb/src/styles/base/_font-faces.css?ver=1743679320" as="style"> <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> <style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style> <!-- This site is optimized with the Yoast SEO Premium plugin v24.7 (Yoast SEO v24.7) - https://yoast.com/wordpress/plugins/seo/ --> <title>NoSQL Database Features | ACID DB | Document Database</title> <link rel="preload" as="font" href="https://ravendb.net/wp-content/themes/ravendb/src/fonts/icomoon-v1.0.0.ttf" crossorigin> <link rel="preload" as="font" href="https://ravendb.net/wp-content/themes/ravendb/src/fonts/icomoon-v1.0.0.woff" crossorigin> <link rel="preload" as="font" href="https://ravendb.net/wp-content/themes/ravendb/src/fonts/icomoon-v1.0.0.woff2" crossorigin> <meta name="description" content="RavenDB NoSQL Document DB features - ACID database transactions, multi platform database, sql nosql integration, advanced query engine, easy to install and secure." /> <link rel="canonical" href="https://ravendb.net/features" /> <link rel="next" href="https://ravendb.net/features/page/2" /> <meta property="og:locale" content="en_US" /> <meta property="og:type" content="website" /> <meta property="og:title" content="Features Archive" /> <meta property="og:description" content="RavenDB NoSQL Document DB features - ACID database transactions, multi platform database, sql nosql integration, advanced query engine, easy to install and secure." /> <meta property="og:url" content="https://ravendb.net/features" /> <meta property="og:site_name" content="RavenDB NoSQL Database" /> <meta property="og:image" content="https://ravendb.net/wp-content/uploads/2025/02/ravendb-common-thumbnail.jpg" /> <meta property="og:image:width" content="1280" /> <meta property="og:image:height" content="720" /> <meta property="og:image:type" content="image/jpeg" /> <meta name="twitter:card" content="summary_large_image" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":"https://ravendb.net/features","url":"https://ravendb.net/features","name":"NoSQL Database Features | ACID DB | Document Database","isPartOf":{"@id":"https://ravendb.net/#website"},"description":"RavenDB NoSQL Document DB features - ACID database transactions, multi platform database, sql nosql integration, advanced query engine, easy to install and secure.","breadcrumb":{"@id":"https://ravendb.net/features#breadcrumb"},"inLanguage":"en-US"},{"@type":"BreadcrumbList","@id":"https://ravendb.net/features#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://ravendb.net/"},{"@type":"ListItem","position":2,"name":"Features"}]},{"@type":"WebSite","@id":"https://ravendb.net/#website","url":"https://ravendb.net/","name":"RavenDB NoSQL Database","description":"A NoSQL Database that's fully transactional. RavenDB NoSQL Document Database allows 1 million reads and 150,000 writes per second.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://ravendb.net/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}</script> <!-- / Yoast SEO Premium plugin. --> <link rel='dns-prefetch' href='//code.jquery.com' /> <link rel='dns-prefetch' href='//fonts.googleapis.com' /> <link rel='dns-prefetch' href='//ajax.googleapis.com' /> <link rel='dns-prefetch' href='//connect.facebook.net' /> <link rel='dns-prefetch' href='//www.google-analytics.com' /> <link rel='dns-prefetch' href='//www.googletagmanager.com' /> <link rel='dns-prefetch' href='//maps.google.com' /> <link rel="alternate" type="application/rss+xml" title="RavenDB NoSQL Database » Features Feed" href="https://ravendb.net/features/feed/" /> <link rel='stylesheet' id='wp-block-library-css' href='https://ravendb.net/wp-includes/css/dist/block-library/style.min.css' media='all' /> <style id='wp-block-library-theme-inline-css'> .wp-block-audio :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-audio :where(figcaption){color:#ffffffa6}.wp-block-audio{margin:0 0 1em}.wp-block-code{border:1px solid #ccc;border-radius:4px;font-family:Menlo,Consolas,monaco,monospace;padding:.8em 1em}.wp-block-embed :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-embed :where(figcaption){color:#ffffffa6}.wp-block-embed{margin:0 0 1em}.blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:#ffffffa6}:root :where(.wp-block-image figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme :root :where(.wp-block-image figcaption){color:#ffffffa6}.wp-block-image{margin:0 0 1em}.wp-block-pullquote{border-bottom:4px solid;border-top:4px solid;color:currentColor;margin-bottom:1.75em}.wp-block-pullquote cite,.wp-block-pullquote footer,.wp-block-pullquote__citation{color:currentColor;font-size:.8125em;font-style:normal;text-transform:uppercase}.wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote:where(.has-text-align-right){border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote:where(.has-text-align-center){border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote:where(.is-style-plain){border:none}.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}:where(.wp-block-group.has-background){padding:1.25em 2.375em}.wp-block-separator.has-css-opacity{opacity:.4}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto}.wp-block-separator.has-alpha-channel-opacity{opacity:1}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px}.wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table :where(figcaption){color:#ffffffa6}.wp-block-video :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-video :where(figcaption){color:#ffffffa6}.wp-block-video{margin:0 0 1em}:root :where(.wp-block-template-part.has-background){margin-bottom:0;margin-top:0;padding:1.25em 2.375em} </style> <style id='classic-theme-styles-inline-css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <style id='global-styles-inline-css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <link rel='stylesheet' id='toc-screen-css' href='https://ravendb.net/wp-content/plugins/table-of-contents-plus/screen.min.css?ver=2411.1' media='all' /> <link data-minify="1" rel='stylesheet' id='vendor-styles-css' href='https://ravendb.net/wp-content/cache/min/1/wp-content/themes/ravendb/dist/vendor.css?ver=1743679320' media='all' /> <link data-minify="1" rel='stylesheet' id='archive-features-styles-css' href='https://ravendb.net/wp-content/cache/min/1/wp-content/themes/ravendb/dist/archive_features.css?ver=1743679342' media='all' /> <script src="https://code.jquery.com/jquery-3.5.0.min.js?ver=3.5.0" id="jquery-core-js"></script> <script src="https://code.jquery.com/jquery-migrate-3.2.0.min.js?ver=3.2.0" id="jquery-migrate-js"></script> <link rel="https://api.w.org/" href="https://ravendb.net/wp-json/" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://ravendb.net/xmlrpc.php?rsd" /> <meta name="generator" content="Elementor 3.28.2; features: additional_custom_breakpoints, e_local_google_fonts; settings: css_print_method-external, google_font-enabled, font_display-swap"> <style> .e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload), .e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload) * { background-image: none !important; } @media screen and (max-height: 1024px) { .e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload), .e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload) * { background-image: none !important; } } @media screen and (max-height: 640px) { .e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload), .e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload) * { background-image: none !important; } } </style> <link rel="icon" href="https://ravendb.net/wp-content/uploads/2023/08/ms-icon-310x310-1-40x40.png" sizes="32x32" /> <link rel="icon" href="https://ravendb.net/wp-content/uploads/2023/08/ms-icon-310x310-1-236x236.png" sizes="192x192" /> <link rel="apple-touch-icon" href="https://ravendb.net/wp-content/uploads/2023/08/ms-icon-310x310-1-236x236.png" /> <meta name="msapplication-TileImage" content="https://ravendb.net/wp-content/uploads/2023/08/ms-icon-310x310-1-300x300.png" /> <style id="rocket-lazyrender-inline-css">[data-wpr-lazyrender] {content-visibility: auto;}</style><meta name="generator" content="WP Rocket 3.18.3" data-wpr-features="wpr_defer_js wpr_preload_fonts wpr_automatic_lazy_rendering wpr_minify_css wpr_preload_links wpr_desktop wpr_dns_prefetch" /></head> <body class="archive post-type-archive post-type-archive-features preload elementor-default elementor-kit-11941"> <!--[if IE]> <div class="alert alert--ie" role="alert"> <string>You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/" class="external" rel="nofollow">upgrade your browser</a> to improve your experience. </div> <![endif]--> <img fetchpriority="high" width="99999" height="99999" style="pointer-events: none; position: absolute; top: 0; left: 0; width: 99vw; height: 99vh; max-width: 99vw; max-height: 99vh;" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSI5OTk5OXB4IiBoZWlnaHQ9Ijk5OTk5cHgiIHZpZXdCb3g9IjAgMCA5OTk5OSA5OTk5OSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj48ZyBzdHJva2U9Im5vbmUiIGZpbGw9Im5vbmUiIGZpbGwtb3BhY2l0eT0iMCI+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9Ijk5OTk5IiBoZWlnaHQ9Ijk5OTk5Ij48L3JlY3Q+IDwvZz4gPC9zdmc+"> <a class="screen-reader-shortcut-header" href="#screen-reader-shortcut-header" tabindex="2">Skip to Navigation</a> <div class="main-content"> <header id="screen-reader-shortcut-header" class="main-header js-main-header fixed-top w-100 bg-header-dark"> <nav class="navbar d-block p-0 z-index-2"> <span class="sr-only">Main navigation</span> <div class="container-fluid"> <div class="row align-items-center justify-content-between w-100 no-gutters"> <div class="col col-auto d-flex align-items-center"> <a href="https://ravendb.net/" title="NoSQL Database" class="navbar-brand position-relative hover-opacity-0-75 p-0 my-0 ml-0 c-mr-3 d-flex align-items-center justify-content-start"> <img src="https://ravendb.net/wp-content/uploads/2023/08/raven-logo-blue.svg" alt="NoSQL Database" width="120" height="27" class="navbar-brand__logo d-block adjustable-element" /> </a> </div> <div > <form class="search-form js-search-form d-flex position-fixed" method="get" action="https://ravendb.net/"> <input class="search-form__input m-0 border-0 bg-secondary text-silver font-size-14" type="text" name="s" placeholder="Type what you’re looking for..." value="" required> <button class="search-form__submit search-form__submit--full line-height-1-2 d-flex align-items-center justify-content-center font-size-12 border-0 bg-light-red" type="submit"> <span class="search-form__text d-inline-block">Search</span> <svg class="search-form__arrow position-absolute" width="10" height="7" viewBox="0 0 10 7" fill="none" xmlns="http://www.w3.org/2000/svg"> <title>Arrow icon</title> <path d="M0.56723 2.84288H7.77356L6.09547 1.11178C6.04259 1.05742 6.00063 0.992818 5.972 0.921691C5.94337 0.850563 5.92864 0.774305 5.92864 0.69729C5.92864 0.620274 5.94337 0.544016 5.972 0.472889C6.00063 0.401761 6.04259 0.337163 6.09547 0.2828L6.20419 0.170644C6.25689 0.116091 6.31951 0.0728068 6.38846 0.0432725C6.45741 0.0137382 6.53133 -0.00146484 6.60599 -0.00146484C6.68065 -0.00146484 6.75457 0.0137382 6.82352 0.0432725C6.89247 0.0728068 6.95509 0.116091 7.00779 0.170644L9.844 3.09645C9.89688 3.15082 9.93884 3.21542 9.96747 3.28654C9.9961 3.35767 10.0108 3.43393 10.0108 3.51094C10.0108 3.58796 9.9961 3.66422 9.96747 3.73534C9.93884 3.80647 9.89688 3.87107 9.844 3.92543L7.00779 6.85124C6.95509 6.9058 6.89247 6.94908 6.82352 6.97861C6.75457 7.00815 6.68065 7.02335 6.60599 7.02335C6.53133 7.02335 6.45741 7.00815 6.38846 6.97861C6.31951 6.94908 6.25689 6.9058 6.20419 6.85124L6.09547 6.73909C6.04259 6.68472 6.00063 6.62013 5.972 6.549C5.94337 6.47787 5.92864 6.40161 5.92864 6.3246C5.92864 6.24758 5.94337 6.17132 5.972 6.1002C6.00063 6.02907 6.04259 5.96447 6.09547 5.91011L7.77356 4.179H0.56723C0.492651 4.17933 0.418749 4.16441 0.349787 4.13512C0.280825 4.10582 0.218168 4.06273 0.165433 4.00833C0.112697 3.95393 0.0709261 3.8893 0.0425303 3.81815C0.0141345 3.74701 -0.00032405 3.67078 -1.13465e-05 3.59384V3.45243C-0.00353884 3.37347 0.00854124 3.2946 0.0354944 3.22061C0.0624475 3.14662 0.10371 3.07906 0.156772 3.02204C0.209834 2.96503 0.273585 2.91974 0.344148 2.88894C0.414712 2.85814 0.490611 2.84247 0.56723 2.84288Z" fill="#F0F4F6"/> </svg> </button> <i class="search-form__icon position-absolute font-size-17 text-silver icon icon-search"></i> </form> </div> <div class="col col-auto d-flex"> <ul class="navbar-nav d-none d-lg-flex flex-row justify-content-center position-relative single-transition align-items-center font-weight-medium"> <li class="menu-item menu-item--main dropdown"> <div class="dropdown-wrapper"> <span class="nav-link nav-link--disabled nav-link--highlighted">Getting Started</span> <div class="dropdown-menu overflow-auto js-dropdown-menu"> <div class="dropdown-menu__menu"> <div> <div class="w-100 d-flex justify-content-center"> <div class="dropdown-menu__column c-px-5 c-py-5" style="" > <div class="dropdown-menu__column-inner dropdown-menu__column-inner--products-column dropdown-with-products c-px-1"> <div class="dropdown-with-products__item"> <div class="d-flex align-items-center"> <figure class="c-mr-3 d-flex"><img width="18" height="30" src="https://ravendb.net/wp-content/uploads/2024/01/Vector.svg" class="attachment-full size-full" alt="" decoding="async" /></figure> <div class="d-flex flex-column"> <h2 class="d-block font-size-24 font-weight-bold" style="color: #388ee9" > RavenDB </h2> <p class="dropdown-with-products__description font-size-12" style="color: #ACADBF" > Modern Document Database </p> </div> </div> <a class="dropdown-menu__button hover-opacity-0-75 border-0 text-secondary d-flex align-items-center justify-content-center w-100 c-mt-2 font-size-12 font-weight-bold text-uppercase c-mt-5" href="https://ravendb.net/download" target="" style="background-color: #388ee9; border-color: #388ee9" > Download </a> </div> <div class="dropdown-with-products__item"> <div class="d-flex align-items-center"> <figure class="c-mr-3 d-flex"><img loading="lazy" width="28" height="20" src="https://ravendb.net/wp-content/uploads/2024/01/Vector1.svg" class="attachment-full size-full" alt="" decoding="async" /></figure> <div class="d-flex flex-column"> <h2 class="d-block font-size-24 font-weight-bold" style="color: #37c4ac" > RavenDB Cloud </h2> <p class="dropdown-with-products__description font-size-12" style="color: #ACADBF" > Database as a Service </p> </div> </div> <a class="dropdown-menu__button hover-opacity-0-75 border-0 text-secondary d-flex align-items-center justify-content-center w-100 c-mt-2 font-size-12 font-weight-bold text-uppercase c-mt-5" href="https://cloud.ravendb.net" target="" style="background-color: #37c4ac; border-color: #37c4ac" > Start Free </a> </div> <div class="dropdown-with-products__item"> <div class="d-flex align-items-center"> <figure class="c-mr-3 d-flex"><img loading="lazy" width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/01/Icon-set.svg" class="attachment-full size-full" alt="" decoding="async" /></figure> <div class="d-flex flex-column"> <h2 class="d-block font-size-24 font-weight-bold" style="color: #f38861" > Try </h2> <p class="dropdown-with-products__description font-size-12" style="color: #ACADBF" > Interactive Demos and Playground Server </p> </div> </div> <a class="dropdown-menu__button hover-opacity-0-75 border-0 text-secondary d-flex align-items-center justify-content-center w-100 c-mt-2 font-size-12 font-weight-bold text-uppercase c-mt-5" href="https://ravendb.net/try" target="" style="background-color: #f38861; border-color: #f38861" > Try </a> </div> </div> </div> </div> </div> </div> </div> </div> </li> <li class="menu-item menu-item--main dropdown"> <div class="dropdown-wrapper"> <span class="nav-link nav-link--disabled">For Developers</span> <div class="dropdown-menu overflow-auto js-dropdown-menu"> <div class="dropdown-menu__menu"> <div> <div class="w-100 d-flex justify-content-center"> <div class="dropdown-menu__column c-px-5 c-py-5" style="background-color: #353742" > <div class="dropdown-menu__column-inner dropdown-menu__column-inner--vertical-links dropdown-with-vertical-links c-p-3"> <div class="d-flex flex-column text-center"> <img class="dropdown-with-vertical-links__img" src="https://ravendb.net/wp-content/uploads/2024/01/Layer_1-2.svg" alt="" /> <h4 class="d-block font-size-14 c-mb-6 c-mt-4" style="color: #C3C3CF"> Experience interactive demos and playground server </h4> <a class="dropdown-with-vertical-links__button rounded-pill hover-opacity-0-75 text-secondary align-items-center justify-content-center w-100 font-size-12 font-weight-bold text-uppercase c-px-3" style="background-color: #f38861; border-color: #f38861" href="https://ravendb.net/try" target="" > <figure class="text-center d-flex align-items-center justify-content-center"> <img loading="lazy" width="21" height="22" src="https://ravendb.net/wp-content/uploads/2024/01/222.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <span> Try now </span> </a> </div> </div> </div> <div class="dropdown-menu__column c-px-5 c-py-5" style="" > <div class="dropdown-menu__column-inner dropdown-menu__column-inner--links-column-assets dropdown-with-link-assets c-px-1"> <div> <!--Heading--> <span class="dropdown-with-link-assets__title c-mb-4 d-block font-size-16 text-uppercase"> Product </span> <!--Repeater--> <ul> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/download"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img loading="lazy" width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/06/onpremise-brand.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #388ee9"> Download </h3> <p class="dropdown-with-link-assets__description font-size-12" style="color: #98A7B7;"> Grab the latest version of RavenDB </p> </div> </a> </li> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/cloud"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img loading="lazy" width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/06/cloud-brand.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #37c4ac"> RavenDB Cloud </h3> <p class="dropdown-with-link-assets__description font-size-12" style="color: #98A7B7;"> Start your DBaaS in minutes </p> </div> </a> </li> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/features"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img loading="lazy" width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/01/11.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Features </h3> <p class="dropdown-with-link-assets__description font-size-12" style="color: #98A7B7;"> Deep dive into our rich feature set </p> </div> </a> </li> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/performance"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img loading="lazy" width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/01/22.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Performance </h3> <p class="dropdown-with-link-assets__description font-size-12" style="color: #98A7B7;"> Clear picture of how well RavenDB performs crucial tasks </p> </div> </a> </li> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/comparison"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img loading="lazy" width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/01/33.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Comparison </h3> <p class="dropdown-with-link-assets__description font-size-12" style="color: #98A7B7;"> RavenDB vs the World </p> </div> </a> </li> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/ravendb-vs-mongodb"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img loading="lazy" width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/11/MongoDB-white-logo.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> RavenDB vs MongoDB </h3> <p class="dropdown-with-link-assets__description font-size-12" style="color: #98A7B7;"> Explore the detailed comparison </p> </div> </a> </li> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/why-ravendb/whats-new"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img loading="lazy" width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/01/44.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> What’s New </h3> <p class="dropdown-with-link-assets__description font-size-12" style="color: #98A7B7;"> Latest and greatest from our Team </p> </div> </a> </li> </ul> </div> <div> <!--Heading--> <span class="dropdown-with-link-assets__title c-mb-4 d-block font-size-16 text-uppercase"> Documentation </span> <!--Repeater--> <ul> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/docs"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img loading="lazy" width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/06/docs-white.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #f0f1f6"> RavenDB Docs </h3> <p class="dropdown-with-link-assets__description font-size-12" style="color: #98A7B7;"> Learn how to use RavenDB </p> </div> </a> </li> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/docs/article-page/latest/csharp/cloud/cloud-overview"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img loading="lazy" width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/06/cloud-white.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #f0f1f6"> RavenDB Cloud Docs </h3> <p class="dropdown-with-link-assets__description font-size-12" style="color: #98A7B7;"> DBaaS and Cloud API documentation </p> </div> </a> </li> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/learn/docs-guide"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img loading="lazy" width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/01/3.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Documentation Guide </h3> <p class="dropdown-with-link-assets__description font-size-12" style="color: #98A7B7;"> Get started with RavenDB </p> </div> </a> </li> </ul> </div> <div> <!--Heading--> <span class="dropdown-with-link-assets__title c-mb-4 d-block font-size-16 text-uppercase"> Learn </span> <!--Repeater--> <ul> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://demo.ravendb.net/"> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Demo </h3> </div> </a> </li> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/learn/bootcamp"> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Bootcamp </h3> </div> </a> </li> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/webinars"> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Webinars </h3> </div> </a> </li> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/workshops"> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Workshops </h3> </div> </a> </li> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/learn/inside-ravendb-book"> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Inside RavenDB Book </h3> </div> </a> </li> </ul> </div> <div> <!--Heading--> <span class="dropdown-with-link-assets__title c-mb-4 d-block font-size-16 text-uppercase"> Community </span> <!--Repeater--> <ul> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center external" href="https://github.com/ravendb/ravendb" rel="nofollow"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img loading="lazy" width="24" height="24" src="https://ravendb.net/wp-content/uploads/2024/01/01.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> GitHub </h3> </div> </a> </li> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center external" href="https://stackoverflow.com/questions/tagged/ravendb" rel="nofollow"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img loading="lazy" width="24" height="24" src="https://ravendb.net/wp-content/uploads/2024/01/02.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> StackOverflow </h3> </div> </a> </li> </ul> </div> <div> <!--Heading--> <span class="dropdown-with-link-assets__title c-mb-4 d-block font-size-16 text-uppercase"> News </span> <!--Repeater--> <ul> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/news"> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Articles </h3> </div> </a> </li> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/news?category=Whitepapers"> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Whitepapers </h3> </div> </a> </li> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/events"> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Events </h3> </div> </a> </li> </ul> </div> <div> <!--Heading--> <span class="dropdown-with-link-assets__title c-mb-4 d-block font-size-16 text-uppercase"> Assets </span> <!--Repeater--> <ul> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/promotional-materials"> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Promotional Materials </h3> </div> </a> </li> </ul> </div> <ul class="dropdown-with-link-assets__social-list d-flex flex-row"> <li class="dropdown-with-link-assets__social-item d-flex align-items-center"> <a href="https://www.linkedin.com/company/hibernating-rhinos-ltd-/" class="external" rel="nofollow"> <figure><img loading="lazy" width="16" height="16" src="https://ravendb.net/wp-content/uploads/2024/01/Vector-1.svg" class="attachment-full size-full" alt="" decoding="async" /></figure> </a> </li> <li class="dropdown-with-link-assets__social-item d-flex align-items-center"> <a href="https://twitter.com/ravendb" class="external" rel="nofollow"> <figure><img loading="lazy" width="15" height="15" src="https://ravendb.net/wp-content/uploads/2024/01/x.svg" class="attachment-full size-full" alt="" decoding="async" /></figure> </a> </li> <li class="dropdown-with-link-assets__social-item d-flex align-items-center"> <a href="https://www.youtube.com/user/HibernatingRhinos" class="external" rel="nofollow"> <figure><img loading="lazy" width="19" height="14" src="https://ravendb.net/wp-content/uploads/2024/01/Vector-5.svg" class="attachment-full size-full" alt="" decoding="async" /></figure> </a> </li> <li class="dropdown-with-link-assets__social-item d-flex align-items-center"> <a href="https://www.facebook.com/pages/RavenDB/265907650186374" class="external" rel="nofollow"> <figure><img loading="lazy" width="8" height="16" src="https://ravendb.net/wp-content/uploads/2024/01/Vector-2.svg" class="attachment-full size-full" alt="" decoding="async" /></figure> </a> </li> <li class="dropdown-with-link-assets__social-item d-flex align-items-center"> <a href="https://www.instagram.com/ravendbnet" class="external" rel="nofollow"> <figure><img loading="lazy" width="15" height="16" src="https://ravendb.net/wp-content/uploads/2024/01/Vector-4.svg" class="attachment-full size-full" alt="" decoding="async" /></figure> </a> </li> </ul> </div> </div> </div> </div> </div> </div> </div> </li> <li class="menu-item menu-item--main dropdown"> <div class="dropdown-wrapper"> <span class="nav-link nav-link--disabled">For Business</span> <div class="dropdown-menu overflow-auto js-dropdown-menu"> <div class="dropdown-menu__menu"> <div> <div class="w-100 d-flex justify-content-center"> <div class="dropdown-menu__column c-px-5 c-py-5" style="background-color: #353742" > <div class="dropdown-menu__column-inner dropdown-menu__column-inner--vertical-links dropdown-with-vertical-links c-p-3"> <div class="d-flex flex-column text-center"> <img class="dropdown-with-vertical-links__img" src="https://ravendb.net/wp-content/uploads/2024/01/Frame1.svg" alt="" /> <h4 class="d-block font-size-14 c-mb-6 c-mt-4" style="color: #C3C3CF"> Unlock your business potential </h4> <a class="dropdown-with-vertical-links__button rounded-pill hover-opacity-0-75 text-secondary align-items-center justify-content-center w-100 font-size-12 font-weight-bold text-uppercase c-px-3" style="background-color: #2fb4d2; border-color: #2fb4d2" href="https://ravendb.net/why-ravendb" target="" > <figure class="text-center d-flex align-items-center justify-content-center"> <img loading="lazy" width="21" height="21" src="https://ravendb.net/wp-content/uploads/2024/01/111.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <span> Why RavenDB </span> </a> <a class="dropdown-with-vertical-links__button rounded-pill hover-opacity-0-75 text-secondary align-items-center justify-content-center w-100 font-size-12 font-weight-bold text-uppercase c-px-3" style="background-color: #518bee; border-color: #518bee" href="https://ravendb.net/features" target="" > <figure class="text-center d-flex align-items-center justify-content-center"> <img loading="lazy" width="21" height="22" src="https://ravendb.net/wp-content/uploads/2024/01/222.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <span> Features </span> </a> <a class="dropdown-with-vertical-links__button rounded-pill hover-opacity-0-75 text-secondary align-items-center justify-content-center w-100 font-size-12 font-weight-bold text-uppercase c-px-3" style="background-color: #7a61d4; border-color: #7a61d4" href="https://ravendb.net/live-demo" target="" > <figure class="text-center d-flex align-items-center justify-content-center"> <img loading="lazy" width="21" height="21" src="https://ravendb.net/wp-content/uploads/2024/01/333.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <span> Live demo </span> </a> </div> </div> </div> <div class="dropdown-menu__column c-px-5 c-py-5" style="" > <div class="dropdown-menu__column-inner dropdown-menu__column-inner--links-column-assets dropdown-with-link-assets c-px-1 dropdown-with-link-assets--two-cols"> <div> <!--Heading--> <!--Repeater--> <ul> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/news/use-cases"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img loading="lazy" width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/01/001.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Use Cases </h3> <p class="dropdown-with-link-assets__description font-size-12" style="color: #98A7B7;"> Business applications of our platform </p> </div> </a> </li> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/news"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img loading="lazy" width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/01/002.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Articles </h3> <p class="dropdown-with-link-assets__description font-size-12" style="color: #98A7B7;"> Announcements, blog posts and other solutions in one place </p> </div> </a> </li> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/news?category=Whitepapers"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img loading="lazy" width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/01/003.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Whitepapers </h3> <p class="dropdown-with-link-assets__description font-size-12" style="color: #98A7B7;"> In-depth guides, comparison and analysis articles </p> </div> </a> </li> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/news/press-releases"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img loading="lazy" width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/01/004.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Press Releases </h3> <p class="dropdown-with-link-assets__description font-size-12" style="color: #98A7B7;"> Public announcements </p> </div> </a> </li> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/news/industry-reports"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img loading="lazy" width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/01/005.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Industry Reports </h3> <p class="dropdown-with-link-assets__description font-size-12" style="color: #98A7B7;"> Technology and business trends </p> </div> </a> </li> </ul> </div> <div> <!--Heading--> <!--Repeater--> <ul> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/performance"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img loading="lazy" width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/01/1111.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Performance </h3> <p class="dropdown-with-link-assets__description font-size-12" style="color: #98A7B7;"> Clear picture of how well RavenDB performs crucial tasks </p> </div> </a> </li> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/comparison"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img loading="lazy" width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/01/2222.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Comparison </h3> <p class="dropdown-with-link-assets__description font-size-12" style="color: #98A7B7;"> RavenDB vs the World </p> </div> </a> </li> </ul> </div> <div> <!--Heading--> <span class="dropdown-with-link-assets__title c-mb-4 d-block font-size-16 text-uppercase"> PROGRAMS </span> <!--Repeater--> <ul> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/poc"> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Proof of Concept Program </h3> </div> </a> </li> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/educators-program"> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Academic Program </h3> </div> </a> </li> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/partners"> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Partners Program </h3> </div> </a> </li> </ul> </div> <div> <!--Heading--> <span class="dropdown-with-link-assets__title c-mb-4 d-block font-size-16 text-uppercase"> MISC </span> <!--Repeater--> <ul> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/events"> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Events </h3> </div> </a> </li> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/why-ravendb/whats-new"> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> What’s New </h3> </div> </a> </li> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/about/roadmap"> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Roadmap </h3> </div> </a> </li> </ul> </div> </div> </div> </div> </div> </div> </div> </div> </li> <li class="menu-item menu-item--main dropdown"> <div class="dropdown-wrapper"> <span class="nav-link nav-link--disabled">Pricing</span> <div class="dropdown-menu overflow-auto js-dropdown-menu"> <div class="dropdown-menu__menu"> <div> <div class="w-100 d-flex justify-content-center"> <div class="dropdown-menu__column c-px-5 c-py-5" style="" > <div class="dropdown-menu__column-inner dropdown-menu__column-inner--links-column-assets dropdown-with-link-assets c-px-1 dropdown-with-link-assets--two-cols"> <div> <!--Heading--> <!--Repeater--> <ul> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/buy"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img loading="lazy" width="23" height="18" src="https://ravendb.net/wp-content/uploads/2024/01/a1.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #388ee9"> On-premise Pricing </h3> </div> </a> </li> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://cloud.ravendb.net/pricing"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img loading="lazy" width="24" height="24" src="https://ravendb.net/wp-content/uploads/2024/01/a2.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #37c4ac"> Cloud Pricing </h3> </div> </a> </li> </ul> </div> <div> <!--Heading--> <span class="dropdown-with-link-assets__title c-mb-4 d-block font-size-16 text-uppercase"> PROGRAMS </span> <!--Repeater--> <ul> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/poc"> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Proof of Concept Program </h3> </div> </a> </li> <li class="c-mb-4"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/educators-program"> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Academic Program </h3> </div> </a> </li> </ul> </div> </div> </div> </div> </div> </div> </div> </div> </li> <li class="menu-item menu-item--main"> <a href="https://ravendb.net/support" class="nav-link">Support</a> </li> <li class="menu-item menu-item--main"> <a href="https://ravendb.net/about" class="nav-link">About</a> </li> <li class="menu-item menu-item--main"> <a href="https://ravendb.net/contact" class="nav-link">Contact</a> </li> <li class="menu-item menu-item--search d-none d-lg-block"> <button class="d-flex align-items-center justify-content-center border-0 bg-transparent hover-opacity-0-75 js-show-search"> <span class="menu-item__icon-search line-height-1"> <i class="icon icon-search text-light-gray font-size-14"></i> </span> <span class="menu-item__icon-close line-height-1"> <svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg"> <title>Arrow icon</title> <path d="M-0.00317001 1.20856L4.78985 6.00159L-0.00317001 10.7946L1.20539 12.0032L5.99841 7.21015L10.7914 12.0032L12 10.7946L7.20698 6.00159L12 1.20856L10.7914 0L5.99841 4.79302L1.20539 0L-0.00317001 1.20856Z" fill="#F0F4F6"/> </svg> <span class="d-inline-block c-ml-2 text-light-gray">Close</span> </span> </button> </li> </ul> <a class="d-block d-lg-none" href="#mobile-navigation"> <svg width="16" height="13" viewBox="0 0 16 13" fill="none" xmlns="http://www.w3.org/2000/svg"> <title>Hamburger menu icon</title> <rect width="16" height="3" rx="1" fill="#F0F4F6"/> <rect y="5" width="16" height="3" rx="1" fill="#F0F4F6"/> <rect y="10" width="16" height="3" rx="1" fill="#F0F4F6"/> </svg> </a> <div class="js-minicart d-none d-xl-flex"></div> </div> </div> </div> </nav> </header> <main id="main"> <section class="features-above-content c-py-8"> <div class="container"> <h1 class="features-above-content__header text-center font-weight-black c-pb-5">RavenDB Features</h1> <div class="row justify-content-center"> <div class="col-sm-6 col-lg-3"> <a class="features-item d-flex flex-column align-items-center text-center c-mt-6" href="https://ravendb.net/why-ravendb/whats-new"> <div class="features-item__img-wrapper c-mb-3"> <img src="https://ravendb.net/wp-content/uploads/2021/03/features-whats-new.svg" class="features-item__img" alt="NoSQL Database New Features" decoding="async" /> </div> <div class="features-item__description"> <h3 class="features-item__title font-size-14 text-uppercase c-pb-2">What's new</h3> <span class="features-item__text font-size-13">New indexing, simple sharding, integration with Kafka and more</span> </div> </a> </div> <div class="col-sm-6 col-lg-3"> <a class="features-item d-flex flex-column align-items-center text-center c-mt-6" href="https://ravendb.net/features/clusters/sharding"> <div class="features-item__img-wrapper c-mb-3"> <img loading="lazy" width="2950" height="2454" src="https://ravendb.net/wp-content/uploads/2023/10/sharding.svg" class="features-item__img" alt="" decoding="async" /> </div> <div class="features-item__description"> <h3 class="features-item__title font-size-14 text-uppercase c-pb-2">Sharding</h3> <span class="features-item__text font-size-13">Splitting a single database across several servers</span> </div> </a> </div> <div class="col-sm-6 col-lg-3"> <a class="features-item d-flex flex-column align-items-center text-center c-mt-6" href="https://ravendb.net/why-ravendb/advanced-query-engine"> <div class="features-item__img-wrapper c-mb-3"> <img src="https://ravendb.net/wp-content/uploads/2021/03/features-query-engine.svg" class="features-item__img" alt="NoSQL Database Query Engine" decoding="async" /> </div> <div class="features-item__description"> <h3 class="features-item__title font-size-14 text-uppercase c-pb-2">Advanced Query Engine</h3> <span class="features-item__text font-size-13">Advanced Corax indexing</span> </div> </a> </div> </div> <a class="c-mt-8 text-center d-block font-size-14 text-uppercase font-weight-bold" href="https://ravendb.net/why-ravendb">And more...</a> </div> </section> <div class="sections-group"> <section id="clients" class="section-features c-pt-4 c-pb-5" style="background: #0c77ca"> <h4 class="font-size-36 font-weight-bold text-uppercase c-pl-4 c-pb-5 c-mt-6 c-mt-lg-4">Clients</h4> <section class="features-category-section"> <div class="container"> <div class="row"> <div class="col-4 col-md-2 d-flex align-items-stretch"> <div class="features-category-section__feature d-flex flex-column align-items-center position-relative w-100 c-py-3 c-my-2"> <i style="color: #addbff" class="features-category-section__feature-icon icon-cplusplus c-pb-3"></i> <div class="d-flex flex-column justify-content-center"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> C++ </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </div> </div> <div class="col-4 col-md-2 d-flex align-items-stretch"> <div class="features-category-section__feature d-flex flex-column align-items-center position-relative w-100 c-py-3 c-my-2"> <i style="color: #addbff" class="features-category-section__feature-icon icon-php c-pb-3"></i> <div class="d-flex flex-column justify-content-center"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> PHP </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </div> </div> <div class="col-4 col-md-2 d-flex align-items-stretch"> <a href="/features/clients/csharp" data-title="C#" data-target-modal="feature-2224" class="features-category-section__feature js-modal-trigger d-flex flex-column align-items-center position-relative w-100 c-py-3 c-my-2"> <i style="color: #addbff" class="features-category-section__feature-icon icon-dotnet c-pb-3"></i> <div class="d-flex flex-column justify-content-center"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> C# </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-2224"> <div class="d-none"> <div class="js-features-category__meta-title">C# Client | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">RavenDB C# client features: a fluent and predictable hand-tailored API, full LINQ to RQL support, safe by default, extensible and configurable, DDD compatible, unit of work.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #98a7b7" class="features-category__modal-icon icon-dotnet c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Clients </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #98a7b7" class="font-size-70 icon-dotnet"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> C# </h2> </div> <div class="entry-content"> <h4 class="wp-block-heading">Features</h4> <ul class="wp-block-list"><li>A fluent and predictable hand-tailored API</li><li>Full LINQ to RQL support</li><li>Safe by default</li><li>Extensible and configurable with the ability to inject behavior directly from server</li><li>DDD compatible</li><li>Unit of Work</li></ul> <div id="acf-block-additional-info-block_60780015d8d20" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 light"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #33443e"> <i class="icon-hammer font-size-19 d-inline-block c-mr-only-2"></i> Platforms </h4> <div class="additional-info__content font-size-13" style="background-color: #33443e" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>.NET Core 1.0 and up</li> <li>.NET Framework 4.6 and up</li> </ul> </div> </div> </section> </div> <div id="acf-block-additional-info-block_609bf3c98d64a" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 light"> <div class="d-flex flex-column-reverse flex-sm-row align-items-start align-items-md-end"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> Initializing documentstore </h4> </div> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-csharp"> <code class=" language-csharp"><span class="token comment">// 'DocumentStore' is a main-entry point for client API.</span> <span class="token comment">// It is responsible for managing and establishing connections</span> <span class="token comment">// between your application and RavenDB server/cluster</span> <span class="token comment">// and is capable of working with multiple databases at once.</span> <span class="token comment">// Due to it's nature, it is recommended to have only one</span> <span class="token comment">// singleton instance per application</span> <span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">class</span> <span class="token class-name">DocumentStoreHolder</span> <span class="token punctuation">{</span> <span class="token keyword">private</span> <span class="token keyword">static</span> <span class="token keyword">readonly</span> Lazy<span class="token operator"><</span>IDocumentStore<span class="token operator">></span> LazyStore <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token generic-method"><span class="token function">Lazy</span><span class="token punctuation"><</span><span class="token class-name">IDocumentStore</span><span class="token punctuation">></span></span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=</span><span class="token operator">></span> <span class="token punctuation">{</span> <span class="token keyword">var</span> store <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">DocumentStore</span> <span class="token punctuation">{</span> Urls <span class="token operator">=</span> <span class="token keyword">new</span><span class="token punctuation">[</span><span class="token punctuation">]</span> <span class="token punctuation">{</span> <span class="token string">"http://localhost:8080"</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> Database <span class="token operator">=</span> <span class="token string">"Northwind"</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token keyword">return</span> store<span class="token punctuation">.</span><span class="token function">Initialize</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token class-name">IDocumentStore</span> Store <span class="token operator">=</span><span class="token operator">></span> LazyStore<span class="token punctuation">.</span>Value<span class="token punctuation">;</span> <span class="token punctuation">}</span> </code> </pre> </div> </div> </section> <section class="additional-info c-my-5 light"> <div class="d-flex flex-column-reverse flex-sm-row align-items-start align-items-md-end"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> Opening session </h4> </div> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-csharp"> <code class=" language-csharp"><span class="token comment">// 'DocumentSession' or 'Session' is a short-living and lightweight object</span> <span class="token comment">// used as a main and recommended interaction point with the database.</span> <span class="token comment">// With 'Session' you are able to load documents, modify them, save them back</span> <span class="token comment">// issue queries, patches, and much more.</span> <span class="token comment">// It implements Unit Of Work concept and is batching requests</span> <span class="token comment">// to reduce the expensive network traffic</span> <span class="token keyword">using</span> <span class="token punctuation">(</span><span class="token class-name">IDocumentSession</span> session <span class="token operator">=</span> DocumentStoreHolder<span class="token punctuation">.</span>Store<span class="token punctuation">.</span><span class="token function">OpenSession</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token comment">// code here</span> <span class="token punctuation">}</span> </code> </pre> </div> </div> </section> </div> <div id="acf-block-additional-info-block_609e2e362aba1" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 light"> <div class="d-flex flex-column-reverse flex-sm-row align-items-start align-items-md-end"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> Save multiple entities </h4> </div> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-csharp"> <code class=" language-csharp"><span class="token keyword">var</span> category <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Category</span> <span class="token punctuation">{</span> Name <span class="token operator">=</span> <span class="token string">"Electronics"</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token comment">// Store the category in 'Session'</span> <span class="token comment">// and automatically assign Id using HiLo algorithm</span> session<span class="token punctuation">.</span><span class="token function">Store</span><span class="token punctuation">(</span>category<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">var</span> product <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Product</span> <span class="token punctuation">{</span> Name <span class="token operator">=</span> <span class="token string">"Laptop 2000"</span><span class="token punctuation">,</span> Category <span class="token operator">=</span> category<span class="token punctuation">.</span>Id <span class="token comment">// use the previously assigned Id</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token comment">// Store the product in 'Session'</span> <span class="token comment">// and automatically assign Id using HiLo algorithm</span> session<span class="token punctuation">.</span><span class="token function">Store</span><span class="token punctuation">(</span>product<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Synchronize changes with the server.</span> <span class="token comment">// All changes will be send in one batch</span> <span class="token comment">// that will be processed as _one_ ACID transaction</span> session<span class="token punctuation">.</span><span class="token function">SaveChanges</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code> </pre> </div> </div> </section> </div> <div id="acf-block-additional-info-block_609e2edc2aba3" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 light"> <div class="d-flex flex-column-reverse flex-sm-row align-items-start align-items-md-end"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> Load & modify </h4> </div> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-csharp"> <code class=" language-csharp"><span class="token comment">// Load the 'Employee' and start tracking its changes</span> <span class="token class-name">Employee</span> employee <span class="token operator">=</span> session<span class="token punctuation">.</span><span class="token generic-method"><span class="token function">Load</span><span class="token punctuation"><</span><span class="token class-name">Employee</span><span class="token punctuation">></span></span><span class="token punctuation">(</span><span class="token string">"employees/1-A"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Apply modifications</span> employee<span class="token punctuation">.</span>FirstName <span class="token operator">=</span> <span class="token string">"Juliette"</span><span class="token punctuation">;</span> <span class="token comment">// Synchronize changes with the server.</span> <span class="token comment">// All changes will be send in one batch</span> <span class="token comment">// that will be processed as _one_ ACID transaction</span> session<span class="token punctuation">.</span><span class="token function">SaveChanges</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code> </pre> </div> </div> </section> </div> <div id="acf-block-additional-info-block_609e2f962aba5" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 light"> <div class="d-flex flex-column-reverse flex-sm-row align-items-start align-items-md-end"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> Query </h4> </div> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-csharp"> <code class=" language-csharp"><span class="token comment">// return all entities from 'Employees' collection</span> <span class="token comment">// where FirstName equals 'Robert'</span> List<span class="token operator"><</span>Employee<span class="token operator">></span> employees <span class="token operator">=</span> session <span class="token punctuation">.</span><span class="token generic-method"><span class="token function">Query</span><span class="token punctuation"><</span><span class="token class-name">Employee</span><span class="token punctuation">></span></span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">Where</span><span class="token punctuation">(</span>x <span class="token operator">=</span><span class="token operator">></span> x<span class="token punctuation">.</span>FirstName <span class="token operator">==</span> <span class="token string">"Robert"</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">ToList</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// return all 'LastNames' from 'Employees' collection</span> <span class="token comment">// that were born after '1960-01-01'</span> List<span class="token operator"><</span><span class="token keyword">string</span><span class="token operator">></span> lastNames <span class="token operator">=</span> session <span class="token punctuation">.</span><span class="token generic-method"><span class="token function">Query</span><span class="token punctuation"><</span><span class="token class-name">Employee</span><span class="token punctuation">></span></span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">Where</span><span class="token punctuation">(</span>x <span class="token operator">=</span><span class="token operator">></span> x<span class="token punctuation">.</span>Birthday <span class="token operator">></span> <span class="token keyword">new</span> <span class="token class-name">DateTime</span><span class="token punctuation">(</span><span class="token number">1960</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">Select</span><span class="token punctuation">(</span>x <span class="token operator">=</span><span class="token operator">></span> x<span class="token punctuation">.</span>LastName<span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">ToList</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code> </pre> </div> </div> </section> </div> </div> </div> </div> </div> <div class="col-4 col-md-2 d-flex align-items-stretch"> <a href="/features/clients/java" data-title="Java" data-target-modal="feature-2272" class="features-category-section__feature js-modal-trigger d-flex flex-column align-items-center position-relative w-100 c-py-3 c-my-2"> <i style="color: #addbff" class="features-category-section__feature-icon icon-java c-pb-3"></i> <div class="d-flex flex-column justify-content-center"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> Java </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-2272"> <div class="d-none"> <div class="js-features-category__meta-title">Java Client | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">RavenDB Java client features: a fluent and predictable hand-tailored API, safe by default, extensible and configurable, DDD compatible, unit of work.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #98a7b7" class="features-category__modal-icon icon-java c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Clients </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #98a7b7" class="font-size-70 icon-java"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Java </h2> </div> <div class="entry-content"> <h4 class="wp-block-heading" id="h-features">Features</h4> <ul class="wp-block-list"> <li>A fluent and predictable hand-tailored API</li> <li>Safe by default</li> <li>Extensible and configurable</li> <li>DDD compatible</li> <li>Unit of Work</li> </ul> <div id="acf-block-additional-info-block_6e14b74a803777eb0304d566db93994c" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 light"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #33443e"> <i class="icon-hammer font-size-19 d-inline-block c-mr-only-2"></i> Jvm requirements </h4> <div class="additional-info__content font-size-13" style="background-color: #33443e" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>Java 1.8+</li> </ul> </div> </div> </section> </div> <div id="acf-block-additional-info-block_a505f778732c8243610fc58cd628f823" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 light"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> Initializing documentstore </h4> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-java"> <code class=" language-java"><span class="token comment">// 'DocumentStore' is a main-entry point for client API.</span> <span class="token comment">// It is responsible for managing and establishing connections</span> <span class="token comment">// between your application and RavenDB server/cluster</span> <span class="token comment">// and is capable of working with multiple databases at once.</span> <span class="token comment">// Due to it's nature, it is recommended to have only one</span> <span class="token comment">// singleton instance per application</span> <span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">DocumentStoreHolder</span> <span class="token punctuation">{</span> <span class="token keyword">private</span> <span class="token keyword">static</span> <span class="token keyword">class</span> <span class="token class-name">DocumentStoreContainer</span> <span class="token punctuation">{</span> <span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">final</span> IDocumentStore store <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">DocumentStore</span><span class="token punctuation">(</span><span class="token string">"http://localhost:8080"</span><span class="token punctuation">,</span> <span class="token string">"Northwind"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">static</span> <span class="token punctuation">{</span> store<span class="token punctuation">.</span><span class="token function">initialize</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token keyword">public</span> <span class="token keyword">static</span> IDocumentStore <span class="token function">getStore</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">return</span> DocumentStoreContainer<span class="token punctuation">.</span>store<span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> </code> </pre> </div> </div> </section> <section class="additional-info c-my-5 light"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> Opening session </h4> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-java"> <code class=" language-java"><span class="token comment">// 'DocumentSession' or 'Session' is a short-living and lightweight object</span> <span class="token comment">// used as a main and recommended interaction point with the database.</span> <span class="token comment">// With 'Session' you are able to load documents, modify them, save them back</span> <span class="token comment">// issue queries, patches, and much more.</span> <span class="token comment">// It implements Unit Of Work concept and is batching requests</span> <span class="token comment">// to reduce the expensive network traffic</span> <span class="token keyword">try</span> <span class="token punctuation">(</span>IDocumentSession session <span class="token operator">=</span> DocumentStoreHolder<span class="token punctuation">.</span><span class="token function">getStore</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">openSession</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token punctuation">{</span> <span class="token comment">// code here</span> <span class="token punctuation">}</span> </code> </pre> </div> </div> </section> <section class="additional-info c-my-5 light"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> Save multiple entities </h4> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-java"> <code class=" language-java">Category category <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Category</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> category<span class="token punctuation">.</span><span class="token function">setName</span><span class="token punctuation">(</span><span class="token string">"Electronics"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Store the category in 'Session'</span> <span class="token comment">// and automatically assign Id using HiLo algorithm</span> session<span class="token punctuation">.</span><span class="token function">store</span><span class="token punctuation">(</span>category<span class="token punctuation">)</span><span class="token punctuation">;</span> Product product <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Product</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> product<span class="token punctuation">.</span><span class="token function">setName</span><span class="token punctuation">(</span><span class="token string">"Laptop 2000"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> product<span class="token punctuation">.</span><span class="token function">setCategory</span><span class="token punctuation">(</span>category<span class="token punctuation">.</span><span class="token function">getId</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// use the previously assigned Id</span> <span class="token comment">// Store the product in 'Session'</span> <span class="token comment">// and automatically assign Id using HiLo algorithm</span> session<span class="token punctuation">.</span><span class="token function">store</span><span class="token punctuation">(</span>product<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Synchronize changes with the server.</span> <span class="token comment">// All changes will be send in one batch</span> <span class="token comment">// that will be processed as _one_ ACID transaction</span> session<span class="token punctuation">.</span><span class="token function">saveChanges</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code> </pre> </div> </div> </section> <section class="additional-info c-my-5 light"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> Load & modify </h4> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-java"> <code class=" language-java"><span class="token comment">// Load the 'Employee' and start tracking its changes</span> Employee employee <span class="token operator">=</span> session<span class="token punctuation">.</span><span class="token function">load</span><span class="token punctuation">(</span>Employee<span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">,</span> <span class="token string">"employees/1-A"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Apply modifications</span> employee<span class="token punctuation">.</span><span class="token function">setFirstName</span><span class="token punctuation">(</span><span class="token string">"Juliette"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Synchronize changes with the server.</span> <span class="token comment">// All changes will be send in one batch</span> <span class="token comment">// that will be processed as _one_ ACID transaction</span> session<span class="token punctuation">.</span><span class="token function">saveChanges</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code> </pre> </div> </div> </section> <section class="additional-info c-my-5 light"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> Query </h4> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-java"> <code class=" language-java"><span class="token comment">// return all entities from 'Employees' collection</span> <span class="token comment">// where firstName equals 'Robert'</span> List<span class="token generics function"><span class="token punctuation"><</span>Employee<span class="token punctuation">></span></span> employees <span class="token operator">=</span> session<span class="token punctuation">.</span><span class="token function">query</span><span class="token punctuation">(</span>Employee<span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">whereEquals</span><span class="token punctuation">(</span><span class="token string">"firstName"</span><span class="token punctuation">,</span> <span class="token string">"Robert"</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">toList</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// return all 'lastNames' from 'Employees' collection</span> <span class="token comment">// that are over 18</span> List<span class="token generics function"><span class="token punctuation"><</span>String<span class="token punctuation">></span></span> lastNames <span class="token operator">=</span> session<span class="token punctuation">.</span><span class="token function">query</span><span class="token punctuation">(</span>Employee<span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">whereGreaterThanOrEqual</span><span class="token punctuation">(</span><span class="token string">"age"</span><span class="token punctuation">,</span> <span class="token number">18</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">selectFields</span><span class="token punctuation">(</span>String<span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">,</span> <span class="token string">"lastName"</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">toList</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code> </pre> </div> </div> </section> </div> </div> </div> </div> </div> <div class="col-4 col-md-2 d-flex align-items-stretch"> <a href="/features/clients/node-js" data-title="Node.js" data-target-modal="feature-3177" class="features-category-section__feature js-modal-trigger d-flex flex-column align-items-center position-relative w-100 c-py-3 c-my-2"> <i style="color: #addbff" class="features-category-section__feature-icon icon-nodejs c-pb-3"></i> <div class="d-flex flex-column justify-content-center"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> Node.js </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-3177"> <div class="d-none"> <div class="js-features-category__meta-title">Node.js Client | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">RavenDB Node.js client features: a fluent and predictable hand-tailored API, safe by default, extensible and configurable, DDD compatible, unit of work.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #98a7b7" class="features-category__modal-icon icon-nodejs c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Clients </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #98a7b7" class="font-size-70 icon-nodejs"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Node.js </h2> </div> <div class="entry-content"> <h4 class="wp-block-heading">Features</h4> <ul class="wp-block-list"><li>A fluent and predictable hand-tailored API</li><li>Safe by default</li><li>Extensible and configurable</li><li>DDD compatible</li><li>Unit of Work</li></ul> <div id="acf-block-additional-info-block_2120552d1338df0c7fe21c150dfd3e96" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 light"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #33443e"> <i class="icon-hammer font-size-19 d-inline-block c-mr-only-2"></i> Node.Js requirements </h4> <div class="additional-info__content font-size-13" style="background-color: #33443e" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>Node.js 6+</li> </ul> </div> </div> </section> </div> <div id="acf-block-additional-info-block_44987afa9a7a15f12e9793aa5c195290" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 light"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> Initializing documentstore </h4> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-js"> <code class=" language-js"><span class="token comment">// 'DocumentStore' is a main-entry point for client API.</span> <span class="token comment">// It is responsible for managing and establishing connections</span> <span class="token comment">// between your application and RavenDB server/cluster</span> <span class="token comment">// and is capable of working with multiple databases at once.</span> <span class="token comment">// Due to it's nature, it is recommended to have only one</span> <span class="token comment">// singleton instance per application</span> <span class="token keyword">import</span> <span class="token punctuation">{</span> DocumentStore <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">"ravendb"</span><span class="token punctuation">;</span> <span class="token keyword">const</span> documentStore <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">DocumentStore</span><span class="token punctuation">(</span><span class="token string">"http://localhost:8080"</span><span class="token punctuation">,</span> <span class="token string">"Northwind"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> documentStore<span class="token punctuation">.</span><span class="token function">initialize</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code> </pre> </div> </div> </section> <section class="additional-info c-my-5 light"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> Opening session </h4> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-js"> <code class=" language-js"><span class="token comment">// 'DocumentSession' or 'Session' is a short-living and lightweight object</span> <span class="token comment">// used as a main and recommended interaction point with the database.</span> <span class="token comment">// With 'Session' you are able to load documents, modify them, save them back</span> <span class="token comment">// issue queries, patches, and much more.</span> <span class="token comment">// It implements Unit Of Work concept and is batching requests</span> <span class="token comment">// to reduce the expensive network traffic</span> <span class="token keyword">const</span> session <span class="token operator">=</span> documentStore<span class="token punctuation">.</span><span class="token function">openSession</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// code here</span> </code> </pre> </div> </div> </section> <section class="additional-info c-my-5 light"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> Save multiple entities </h4> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-js"> <code class=" language-js"><span class="token keyword">const</span> category <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Category</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> category<span class="token punctuation">.</span>name <span class="token operator">=</span> <span class="token string">"Electronics"</span><span class="token punctuation">;</span> <span class="token comment">// Store the category in 'Session'</span> <span class="token comment">// and automatically assign Id using HiLo algorithm</span> <span class="token keyword">await</span> session<span class="token punctuation">.</span><span class="token function">store</span><span class="token punctuation">(</span>category<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">const</span> product <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Product</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> product<span class="token punctuation">.</span>name <span class="token operator">=</span> <span class="token string">"Laptop 2000"</span><span class="token punctuation">;</span> product<span class="token punctuation">.</span>category <span class="token operator">=</span> category<span class="token punctuation">.</span>id<span class="token punctuation">;</span> <span class="token comment">// use the previously assigned Id</span> <span class="token comment">// Store the product in 'Session'</span> <span class="token comment">// and automatically assign Id using HiLo algorithm</span> <span class="token keyword">await</span> session<span class="token punctuation">.</span><span class="token function">store</span><span class="token punctuation">(</span>product<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Synchronize changes with the server.</span> <span class="token comment">// All changes will be send in one batch</span> <span class="token comment">// that will be processed as _one_ ACID transaction</span> <span class="token keyword">await</span> session<span class="token punctuation">.</span><span class="token function">saveChanges</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code> </pre> </div> </div> </section> <section class="additional-info c-my-5 light"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> Load & modify </h4> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-js"> <code class=" language-js"><span class="token comment">// Load the 'Employee' and start tracking its changes</span> <span class="token keyword">const</span> employee <span class="token operator">=</span> <span class="token keyword">await</span> session<span class="token punctuation">.</span><span class="token function">load</span><span class="token punctuation">(</span><span class="token string">"employees/1-A"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Apply modifications</span> employee<span class="token punctuation">.</span>firstName <span class="token operator">=</span> <span class="token string">"Juliette"</span><span class="token punctuation">;</span> <span class="token comment">// Synchronize changes with the server.</span> <span class="token comment">// All changes will be send in one batch</span> <span class="token comment">// that will be processed as _one_ ACID transaction</span> <span class="token keyword">await</span> session<span class="token punctuation">.</span><span class="token function">saveChanges</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code> </pre> </div> </div> </section> <section class="additional-info c-my-5 light"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> Query </h4> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-js"> <code class=" language-js"><span class="token comment">// return all entities from 'Employees' collection</span> <span class="token comment">// where firstName equals 'Robert'</span> <span class="token keyword">const</span> employees <span class="token operator">=</span> <span class="token keyword">await</span> session<span class="token punctuation">.</span><span class="token function">query</span><span class="token punctuation">(</span><span class="token punctuation">{</span> collection<span class="token punctuation">:</span> <span class="token string">"Employees"</span> <span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">whereEquals</span><span class="token punctuation">(</span><span class="token string">"firstName"</span><span class="token punctuation">,</span> <span class="token string">"Robert"</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">all</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// return all 'lastNames' from 'Employees' collection</span> <span class="token comment">// that are over 18</span> <span class="token keyword">const</span> lastNames <span class="token operator">=</span> <span class="token keyword">await</span> session<span class="token punctuation">.</span><span class="token function">query</span><span class="token punctuation">(</span><span class="token punctuation">{</span> collection<span class="token punctuation">:</span> <span class="token string">"Employees"</span> <span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">whereGreaterThanOrEqual</span><span class="token punctuation">(</span><span class="token string">"age"</span><span class="token punctuation">,</span> <span class="token number">18</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">selectFields</span><span class="token punctuation">(</span><span class="token string">"lastName"</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">all</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code> </pre> </div> </div> </section> </div> </div> </div> </div> </div> <div class="col-4 col-md-2 d-flex align-items-stretch"> <div class="features-category-section__feature d-flex flex-column align-items-center position-relative w-100 c-py-3 c-my-2"> <i style="color: #addbff" class="features-category-section__feature-icon icon-python c-pb-3"></i> <div class="d-flex flex-column justify-content-center"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> Python </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </div> </div> <div class="col-4 col-md-2 d-flex align-items-stretch"> <div class="features-category-section__feature d-flex flex-column align-items-center position-relative w-100 c-py-3 c-my-2"> <i style="color: #addbff" class="features-category-section__feature-icon icon-ruby c-pb-3"></i> <div class="d-flex flex-column justify-content-center"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> Ruby </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </div> </div> <div class="col-4 col-md-2 d-flex align-items-stretch"> <div class="features-category-section__feature d-flex flex-column align-items-center position-relative w-100 c-py-3 c-my-2"> <i style="color: #addbff" class="features-category-section__feature-icon icon-golang c-pb-3"></i> <div class="d-flex flex-column justify-content-center"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> Go </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </div> </div> </div> </div> </section> </section> <section id="timeseries" class="section-features c-pt-4 c-pb-5" style="background-color: #22252b"> <h4 class="font-size-36 font-weight-bold text-uppercase c-pl-4 c-pb-5 c-mt-6 c-mt-lg-4">Time series</h4> <section class="features-category-section"> <div class="container"> <div class="row"> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/time-series/distributed-time-series" data-title="Distributed Time Series" data-target-modal="feature-7733" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #6972ee" class="features-category-section__feature-icon icon-time-series c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Distributed Time Series </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Time series values can be used as counters.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-7733"> <div class="d-none"> <div class="js-features-category__meta-title">Distributed Time Series | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">RavenDB is a distributed document database, and its time-series management reflects it and is empowered by it.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #6972ee" class="features-category__modal-icon icon-time-series c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Time series </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #6972ee" class="font-size-70 icon-time-series"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Distributed Time Series </h2> </div> <div class="entry-content"> <p>Countless systems, including an ever-growing number of IoT (Internet of Things) devices, produce streams of values that can show the behavior and development of a process over time. The barometer measurements produced by a weather station, the coordinates produced by a delivery truck’s GPS, share prices reported by a stock exchange, and the heartrate of a runner, reported by a wearable pulse tracker, are values that can be collected and put to very good use. A time-series is a sequence of data points in which collected values are ordered by time, to ease their management and usage.</p> <h4 class="wp-block-heading" id="h-cross-system-support">Cross-System Support</h4> <p>RavenDB 5.0’s time-series support includes a highly-efficient time-series storage, a comfortable and thorough set of API methods, the support of core features like indexing and querying and of dedicated time-series features like rollup and retention, and the full support of a management Studio that lets you conveniently watch and manage time-series, play with them, query and plot them in graphs.</p> <p>Features:</p> <ul class="wp-block-list"><li><strong>Indexing and Querying</strong><br>Time-series are indexed to speed up their performance, and can be <strong>queried</strong> by their indexes. Queries can be performed using LINQ expressions, over raw RQL, and using the Studio.</li><li><strong>Rollup and Retention</strong><br>You can set an automatic rollup and retention policy to regularly create custom time-series from your raw data and delete the data you don’t need anymore.<br><strong>Rollup</strong> is the process of aggregating a time-series’ data to create a smaller dataset that can be used and queried. You can take a 100,000-entries heartrate time-series for example, and aggregate it by the maximal heartrate taken every 10 minutes.<br><strong>Retention</strong> is the process of removing outdated time-series entries to keep storage usage at a minimum and management light.</li><li><strong>Including time-series data</strong><br>This feature shows the efficiency gained by adding time-series functionality to the document model. A document’s time-series data can be <strong>included</strong> while loading the document, retrieved into the client’s cache, and provided to the user the instant it is needed.</li><li><strong>ETL</strong><br>Time Series data can be queried and transformed by an ETL process, and even added to new documents.</li></ul> <h4 class="wp-block-heading" id="h-time-series-in-the-document-model">Time Series in the Document Model</h4> <p>RavenDB is a distributed document database, and its time-series management reflects it and is empowered by it.</p> <ul class="wp-block-list"><li><strong>A Time-Series is a part of a document’s data</strong><br>a time-series is created and handled as an integral part of a specific document, to provide it with a clear context and with the same simple, solid management provided to other data types. Time-series data can be backed up, for example, like the rest of a document’s data. Since time-series are expected to grow large and be updated often, their data is kept separately from their documents’ data and can change rapidly without invoking document-change events and degrading performance.</li><li><strong>Concurrent updates</strong><br>Different cluster nodes and different clients of the same node can update the same time-series simultaneously without conflict.</li></ul> <div id="acf-block-additional-info-block_609e7811b319b" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 light"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> Append entries </h4> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-sql"> <code class=" language-sql"><span class="token comment">// Open a session</span> <span class="token keyword">using</span> <span class="token punctuation">(</span>var <span class="token keyword">session</span> <span class="token operator">=</span> store<span class="token punctuation">.</span>OpenSession<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> { <span class="token comment">// Use the session to create a document</span> <span class="token keyword">session</span><span class="token punctuation">.</span>Store<span class="token punctuation">(</span>new { Name <span class="token operator">=</span> <span class="token string">"John"</span> }<span class="token punctuation">,</span> <span class="token string">"users/john"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Append a Heartrate entry at the first-minute timestamp</span> <span class="token keyword">session</span><span class="token punctuation">.</span>TimeSeriesFor<span class="token punctuation">(</span><span class="token string">"users/john"</span><span class="token punctuation">,</span> <span class="token string">"Hearthrate"</span><span class="token punctuation">)</span> <span class="token punctuation">.</span>Append<span class="token punctuation">(</span>baseline<span class="token punctuation">.</span>AddMinutes<span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token number">70</span>d<span class="token punctuation">,</span> <span class="token string">"Watches/fibit"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">session</span><span class="token punctuation">.</span>SaveChanges<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> } </code> </pre> </div> </div> </section> <section class="additional-info c-my-5 light"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> Retrieve entries </h4> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-sql"> <code class=" language-sql"><span class="token comment">// Retrieve all entries of the "Hearthatea" time-series</span> <span class="token keyword">using</span> <span class="token punctuation">(</span>var <span class="token keyword">session</span> <span class="token operator">=</span> store<span class="token punctuation">.</span>OpenSession<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> { IEnumerable<span class="token operator"><</span>TimeSeriesEntry<span class="token operator">></span> val <span class="token operator">=</span> <span class="token keyword">session</span><span class="token punctuation">.</span>TimeSeriesFor<span class="token punctuation">(</span><span class="token string">"users/john"</span><span class="token punctuation">,</span> <span class="token string">"Heartrate"</span><span class="token punctuation">)</span> <span class="token punctuation">.</span>Get<span class="token punctuation">(</span><span class="token keyword">DateTime</span><span class="token punctuation">.</span>MinValue<span class="token punctuation">,</span> <span class="token keyword">DateTime</span><span class="token punctuation">.</span>MaxValue<span class="token punctuation">)</span><span class="token punctuation">;</span> } </code> </pre> </div> </div> </section> </div> <div id="acf-block-heading-with-tooltip-and-content-block_60ccac1542ab2" class="acf-block-heading-with-tooltip-and-content c-pt-0 c-pb-0"> <div class="acf-block-heading-with-tooltip-and-content__item d-flex align-items-start align-items-md-center flex-column flex-md-row"> <h4 class="acf-block-heading-with-tooltip-and-content__heading c-mt-4 c-mt-md-0 line-height-2 font-weight-extra-bold font-size-20">Incremental Time Series</h4> </div> <div class="c-mt-3 entry-content"> <p><!-- wp:paragraph --></p> <p>Introduced in RavenDB 5.0, <a href="https://ravendb.net/articles/whats-new-in-ravendb-50">Distributed Time Series</a> is a powerful tool that allows you to collect numerical values from sources like monitoring devices and stock trading apps, and order them by time in a single series — one entry of up to 32 values per time frame.</p> <p><!-- /wp:paragraph --> <!-- wp:paragraph --></p> <p>In RavenDB 5.3, we’ve introduced enhancements that enable users to alter stored time series values, allowing entries to be used as counters that can be incremented and decremented. This provides a handy way to accept and update values in real-time and on an ongoing basis, without the worry of conflicts and performance drops due to expensive synchronization.</p> <p><!-- /wp:paragraph --> <!-- wp:paragraph --></p> <p>As an example, think of an ebook store where you need to collect and update statistics in real-time. For every new hour, you’d create an initial tally of zero sold books, then update this value in real-time with each new sale. Not only that, you can now go back in time and make corrections for any cancellations. All of these operations are guaranteed to be executed concurrently on multiple cluster nodes, without any danger of data loss.</p> <p><!-- /wp:paragraph --></p> </div> </div> <div id="acf-block-additional-info-block_607805a3f480c" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 medium"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #303c4c"> <i class="icon-book-filled font-size-19 d-inline-block c-mr-only-2"></i> Read more </h4> <div class="additional-info__content font-size-13" style="background-color: #303c4c" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>You can read more about Time Series <a href="https://ravendb.net/docs/article-page/latest/csharp/document-extensions/timeseries/overview">here</a>.</li> </ul> </div> </div> </section> </div> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <div class="features-category-section__feature d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #6972ee" class="features-category-section__feature-icon icon-time-series-querying c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> Time Series Querying and Indexing </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <div class="features-category-section__feature d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #6972ee" class="features-category-section__feature-icon icon-time-series-rollup c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Time Series Rollup and Retention </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Control aggregation and deletion of historical time series data. </p> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/time-series/time-series-structure" data-title="Time Series Structure" data-target-modal="feature-3183" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #6972ee" class="features-category-section__feature-icon icon-time-series-structure c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Time Series Structure </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Dynamic segmentation, multi-value entries and smart tags ease and speed up Time Series utilization.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-3183"> <div class="d-none"> <div class="js-features-category__meta-title">Time Series Structure | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">Time-series are segmented, to speed up load and query time by handling only the segments that contain relevant data. TSDB include time-stamp data storage.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #6972ee" class="features-category__modal-icon icon-time-series-structure c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Time series </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #6972ee" class="font-size-70 icon-time-series-structure"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Time Series Structure </h2> </div> <div class="entry-content"> <p>Time-series are <strong>segmented</strong>, to speed up load and query time by handling only the segments that contain relevant data.</p> <p>A <strong>time-series entry</strong> is composed of:</p> <ul class="wp-block-list"><li>A UTC date & time <strong>Timestamp</strong>, with 1ms precision.</li><li>An <strong>optional Tag</strong>, that can provide information about the values’ source and point to a document that provides additional information.</li><li><strong>Up to 32 Values</strong>. Some entries can become meaningful only when populated with multiple values, like in the case of a GPS tracking device whose measurements include both a latitude and a longitude.</li></ul> <div id="acf-block-additional-info-block_607807498e817" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 medium"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #303c4c"> <i class="icon-book-filled font-size-19 d-inline-block c-mr-only-2"></i> Read more </h4> <div class="additional-info__content font-size-13" style="background-color: #303c4c" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>You can read more about Time Series <a href="https://ravendb.net/docs/article-page/latest/csharp/document-extensions/timeseries/overview">here</a>.</li> </ul> </div> </div> </section> </div> </div> </div> </div> </div> </div> </div> </section> </section> <section id="querying" class="section-features c-pt-4 c-pb-5" style="background: #794297"> <h4 class="font-size-36 font-weight-bold text-uppercase c-pl-4 c-pb-5 c-mt-6 c-mt-lg-4">Querying</h4> <section class="features-category-section"> <div class="container"> <div class="row"> <div class="col-md-6 d-flex align-items-stretch"> <div class="features-category-section__feature d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #da97ff" class="features-category-section__feature-icon icon-vector-search c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Vector Search </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Similarity search based on vector embeddings</p> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/querying/rql" data-title="Raven Query Language" data-target-modal="feature-7742" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #da97ff" class="features-category-section__feature-icon icon-rql c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Raven Query Language </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Syntax validator and autocompletion.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-7742"> <div class="d-none"> <div class="js-features-category__meta-title">Raven Query Language | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">Our RQL (Raven Query Language) allows you to execute all available types of queries and is a part of our JavaScript patching API. Based on SQL, it can be easily assimilated with few additions of our own.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #9457b5" class="features-category__modal-icon icon-rql c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Querying </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #9457b5" class="font-size-70 icon-rql"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Raven Query Language </h2> </div> <div class="entry-content"> <p>Our RQL (<em>Raven Query Language</em>) allows you to execute all available types of queries and is a part of our <em>JavaScript patching API</em>. Based on SQL, it can be <em>easily assimilated</em> with few additions of our own. </p> <div id="acf-block-additional-info-block_ee1adf2e2ab3fc92cd825d4f1d056085" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 light"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> RQL </h4> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-sql"> <code class=" language-sql"><span class="token keyword">from</span> Orders <span class="token comment">// select</span> <span class="token keyword">where</span> <span class="token keyword">Lines</span><span class="token punctuation">.</span>Count <span class="token operator">></span> <span class="token number">4</span> <span class="token comment">// filter</span> <span class="token keyword">select</span> <span class="token keyword">Lines</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">.</span>ProductName <span class="token keyword">as</span> ProductNames<span class="token punctuation">,</span> <span class="token comment">// project</span> OrderedAt<span class="token punctuation">,</span> ShipTo<span class="token punctuation">.</span>City </code> </pre> </div> </div> </section> <section class="additional-info c-my-5 light"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> RQL </h4> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-sql"> <code class=" language-sql"><span class="token keyword">from</span> Orders <span class="token keyword">as</span> o <span class="token comment">// select</span> <span class="token keyword">load</span> o<span class="token punctuation">.</span>Company <span class="token keyword">as</span> c <span class="token comment">// load related data</span> <span class="token keyword">select</span> { <span class="token comment">// project using JavaScript</span> Name: c<span class="token punctuation">.</span>Name<span class="token punctuation">.</span>toLowerCase<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> Country: c<span class="token punctuation">.</span>Address<span class="token punctuation">.</span>Country<span class="token punctuation">,</span> LinesCount: o<span class="token punctuation">.</span><span class="token keyword">Lines</span><span class="token punctuation">.</span>length } </code> </pre> </div> </div> </section> <section class="additional-info c-my-5 light"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> RQL </h4> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-sql"> <code class=" language-sql"><span class="token keyword">from</span> Orders <span class="token comment">// select</span> <span class="token keyword">group</span> <span class="token keyword">by</span> Company <span class="token comment">// group</span> <span class="token keyword">where</span> <span class="token function">count</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">5</span> <span class="token comment">// filter</span> <span class="token keyword">order</span> <span class="token keyword">by</span> <span class="token function">count</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token keyword">desc</span> <span class="token comment">// order</span> <span class="token keyword">select</span> <span class="token function">count</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token keyword">as</span> Count<span class="token punctuation">,</span> <span class="token keyword">key</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token keyword">as</span> Company <span class="token comment">// project</span> include Company <span class="token comment">// side-load related data</span> </code> </pre> </div> </div> </section> </div> <div id="acf-block-heading-with-tooltip-and-content-block_930edf1fb356a97b36804afb43500a85" class="acf-block-heading-with-tooltip-and-content c-pt-0 c-pb-0"> <div class="acf-block-heading-with-tooltip-and-content__item d-flex align-items-start align-items-md-center flex-column flex-md-row"> <h4 class="acf-block-heading-with-tooltip-and-content__heading c-mt-4 c-mt-md-0 line-height-2 font-weight-extra-bold font-size-20">Intelligent RQL Coding Assistant</h4> </div> <div class="c-mt-3 entry-content"> <p><span style="font-weight: 400;">Starting with version 5.3, writing RQL in the RavenDB Studio will be a much more intuitive experience. As you type, the studio will actively help you with suggestions, offering you a list of possible keywords dynamically filtered based on the current context. RQL queries and patch scripts will be validated before you run them, helping you master RQL and improve your coding skills over time.</span></p> <p><span style="font-weight: 400;">Features like autocomplete, code hints, context-aware suggestions, and lists of data element names will smooth the learning curve and allow you to focus on your objectives without getting caught up in the syntax of your queries and patch scripts.</span></p> </div> </div> <div id="acf-block-additional-info-block_abf14ca77762ebe88b90f9db027f04e9" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 medium"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #303c4c"> <i class="icon-book-filled font-size-19 d-inline-block c-mr-only-2"></i> Read more </h4> <div class="additional-info__content font-size-13" style="background-color: #303c4c" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>You can read more about RQL <a href="https://ravendb.net/docs/article-page/latest/csharp/indexes/querying/what-is-rql">here</a>.</li> </ul> </div> </div> </section> </div> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/querying/full-text-search" data-title="Full-Text Search" data-target-modal="feature-3185" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #da97ff" class="features-category-section__feature-icon icon-text-search c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Full-Text Search </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Search and filter text in specified fields.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-3185"> <div class="d-none"> <div class="js-features-category__meta-title">Full Text Search Query | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">Perform advanced full-text search operations over one or more fields at once with the ability to supply your own custom analyzer. Improved searching mechanism, accurate results.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #9457b5" class="features-category__modal-icon icon-text-search c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Querying </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #9457b5" class="font-size-70 icon-text-search"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Full-Text Search </h2> </div> <div class="entry-content"> <p>Perform advanced <em>full-text search</em> operations over one or more fields at once with the ability to supply your own custom analyzer.</p> <div id="acf-block-additional-info-block_609bf5b500550" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5"> <ul class="nav d-flex list-unstyled"> <li> <a class="additional-info__button font-size-14 w-auto line-height-1-5 font-weight-black d-inline-flex align-items-center active" data-toggle="tab" href="#acf-block-additional-info-block_609bf5b500550-tab-0"> RQL </a> </li> <li> <a class="additional-info__button font-size-14 w-auto line-height-1-5 font-weight-black d-inline-flex align-items-center" data-toggle="tab" href="#acf-block-additional-info-block_609bf5b500550-tab-1"> C# </a> </li> <li> <a class="additional-info__button font-size-14 w-auto line-height-1-5 font-weight-black d-inline-flex align-items-center" data-toggle="tab" href="#acf-block-additional-info-block_609bf5b500550-tab-2"> Java </a> </li> <li> <a class="additional-info__button font-size-14 w-auto line-height-1-5 font-weight-black d-inline-flex align-items-center" data-toggle="tab" href="#acf-block-additional-info-block_609bf5b500550-tab-3"> Node.js </a> </li> </ul> <div class="additional-info__content font-size-13 additional-info__content--alt" c-p-only-2 c-p-md-only-3> <div class="entry-content tab-content"> <div id="acf-block-additional-info-block_609bf5b500550-tab-0" class="additional-info__tab tab-pane fade active show"> <div class="additional-info__tab-item bg-gray-2"> <pre class="language-language-sql c-mt-0"> <code class=" language-sql"><span class="token comment">// return all of the companies</span> <span class="token comment">// which one of the words in 'Name' is 'store'</span> <span class="token keyword">from</span> Companies <span class="token keyword">where</span> search<span class="token punctuation">(</span>Name<span class="token punctuation">,</span> <span class="token string">'store'</span><span class="token punctuation">)</span> </code> </pre> </div> </div> <div id="acf-block-additional-info-block_609bf5b500550-tab-1" class="additional-info__tab tab-pane fade"> <div class="additional-info__tab-item bg-gray-2"> <pre class="language-language-csharp c-mt-0"> <code class=" language-csharp"><span class="token comment">// return all of the companies</span> <span class="token comment">// which one of the words in 'Name' is 'store'</span> <span class="token keyword">var</span> companies <span class="token operator">=</span> session <span class="token punctuation">.</span>Query<span class="token operator"><</span>Company<span class="token operator">></span> <span class="token punctuation">.</span><span class="token function">Search</span><span class="token punctuation">(</span>x <span class="token operator">=</span><span class="token operator">></span> x<span class="token punctuation">.</span>Name<span class="token punctuation">,</span> <span class="token string">"store"</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">ToList</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code> </pre> </div> </div> <div id="acf-block-additional-info-block_609bf5b500550-tab-2" class="additional-info__tab tab-pane fade"> <div class="additional-info__tab-item bg-gray-2"> <pre class="language-language-java c-mt-0"> <code class=" language-java"><span class="token comment">// return all of the companies</span> <span class="token comment">// which one of the words in 'name' is 'store'</span> List<span class="token generics function"><span class="token punctuation"><</span>Company<span class="token punctuation">></span></span> companies <span class="token operator">=</span> session <span class="token punctuation">.</span><span class="token function">query</span><span class="token punctuation">(</span>Company<span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">search</span><span class="token punctuation">(</span><span class="token string">"name"</span><span class="token punctuation">,</span> <span class="token string">"store"</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">toList</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code> </pre> </div> </div> <div id="acf-block-additional-info-block_609bf5b500550-tab-3" class="additional-info__tab tab-pane fade"> <div class="additional-info__tab-item bg-gray-2"> <pre class="language-language-js c-mt-0"> <code class=" language-js"><span class="token comment">// return all of the companies</span> <span class="token comment">// which one of the words in 'name' is 'store'</span> <span class="token keyword">const</span> companies <span class="token operator">=</span> <span class="token keyword">await</span> session <span class="token punctuation">.</span><span class="token function">query</span><span class="token punctuation">(</span><span class="token punctuation">{</span> collection<span class="token punctuation">:</span> <span class="token string">"companies"</span> <span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">search</span><span class="token punctuation">(</span><span class="token string">"name"</span><span class="token punctuation">,</span> <span class="token string">"store"</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">all</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code> </pre> </div> </div> </div> </div> </section> </div> <div id="acf-block-additional-info-block_60780a5a1505b" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 medium"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center"> <i class="icon-book-filled font-size-19 d-inline-block c-mr-only-2"></i> Read more </h4> <div class="additional-info__content font-size-13" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>You can read more about searching <a href="https://ravendb.net/docs/article-page/latest/csharp/indexes/querying/searching">here</a>.</li> </ul> </div> </div> </section> </div> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/querying/facets" data-title="Facets" data-target-modal="feature-3186" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #da97ff" class="features-category-section__feature-icon icon-facets c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Facets </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Categorize search results according to facets that you set.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-3186"> <div class="d-none"> <div class="js-features-category__meta-title">Facets | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">Perform calculations such as counts, sums, averages, min and max on aggregated data. To execute faceted search a static index is required. Faceted search examples:</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #9457b5" class="features-category__modal-icon icon-facets c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Querying </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #9457b5" class="font-size-70 icon-facets"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Facets </h2> </div> <div class="entry-content"> <p>Perform <em>calculations</em> such as counts, sums, averages, min and max on <em>aggregated data</em> and split it into defined ranges without a fuss.</p> <p>In order to execute faceted search a static index is required. It can be as simple as follows:</p> <div id="acf-block-additional-info-block_609e7b44137ed" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 light"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> C# </h4> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-csharp"> <code class=" language-csharp"><span class="token keyword">private</span> <span class="token keyword">class</span> <span class="token class-name">Cameras_ByManufacturerModelCostDateOfListingAndMegapixels</span> <span class="token punctuation">:</span> <span class="token class-name">AbstractIndexCreationTask</span><span class="token operator"><</span>Camera<span class="token operator">></span> <span class="token punctuation">{</span> <span class="token keyword">public</span> <span class="token function">Cameras_ByManufacturerModelCostDateOfListingAndMegapixels</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> Map <span class="token operator">=</span> cameras <span class="token operator">=</span><span class="token operator">></span> <span class="token keyword">from</span> camera <span class="token keyword">in</span> cameras <span class="token keyword">select</span> <span class="token keyword">new</span> <span class="token punctuation">{</span> camera<span class="token punctuation">.</span>Manufacturer<span class="token punctuation">,</span> camera<span class="token punctuation">.</span>Model<span class="token punctuation">,</span> camera<span class="token punctuation">.</span>Cost<span class="token punctuation">,</span> camera<span class="token punctuation">.</span>DateOfListing<span class="token punctuation">,</span> camera<span class="token punctuation">.</span>Megapixels <span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> </code> </pre> </div> </div> </section> </div> <p>Those are all the requirements for faceted search.<br>Now queries can be executed against all index fields as follows:</p> <div id="acf-block-additional-info-block_609d3a5041c98" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5"> <ul class="nav d-flex list-unstyled"> <li> <a class="additional-info__button font-size-14 w-auto line-height-1-5 font-weight-black d-inline-flex align-items-center active" data-toggle="tab" href="#acf-block-additional-info-block_609d3a5041c98-tab-0"> RQL </a> </li> <li> <a class="additional-info__button font-size-14 w-auto line-height-1-5 font-weight-black d-inline-flex align-items-center" data-toggle="tab" href="#acf-block-additional-info-block_609d3a5041c98-tab-1"> C# </a> </li> </ul> <div class="additional-info__content font-size-13 additional-info__content--alt" c-p-only-2 c-p-md-only-3> <div class="entry-content tab-content"> <div id="acf-block-additional-info-block_609d3a5041c98-tab-0" class="additional-info__tab tab-pane fade active show"> <div class="additional-info__tab-item bg-gray-2"> <pre class="language-language-sql c-mt-0"> <code class=" language-sql"><span class="token comment">// return 3 facet results for cameras </span> <span class="token comment">// using 'Cameras/ByManufacturerModelCostDateOfListingAndMegapixels' index</span> <span class="token comment">// - first result will return aggregations (Count) based on 'Manufacturer'</span> <span class="token comment">// - second result will return aggregations (Count, Sum) based on 'Cost' </span> <span class="token comment">// and divided into supplied 'Cost' ranges</span> <span class="token comment">// - third result will return aggregations (Count, Min, Max, Average) based on 'Cost'</span> <span class="token comment">// and divided into supplied 'Megapixels' ranges</span> <span class="token keyword">from</span> <span class="token keyword">index</span> <span class="token string">'Cameras/ByManufacturerModelCostDateOfListingAndMegapixels'</span> <span class="token keyword">where</span> Cost <span class="token operator">between</span> <span class="token number">100</span> <span class="token operator">and</span> <span class="token number">300</span> <span class="token keyword">select</span> facet<span class="token punctuation">(</span>Manufacturer<span class="token punctuation">)</span><span class="token punctuation">,</span> facet<span class="token punctuation">(</span>Cost <span class="token operator"><</span> <span class="token number">200</span><span class="token punctuation">,</span> Cost <span class="token operator">>=</span> <span class="token number">200</span> <span class="token operator">and</span> Cost <span class="token operator"><</span> <span class="token number">400</span><span class="token punctuation">,</span> Cost <span class="token operator">>=</span> <span class="token number">400</span> <span class="token operator">and</span> Cost <span class="token operator"><</span> <span class="token number">600</span><span class="token punctuation">,</span> Cost <span class="token operator">>=</span> <span class="token number">600</span> <span class="token operator">and</span> Cost <span class="token operator"><</span> <span class="token number">800</span><span class="token punctuation">,</span> Cost <span class="token operator">>=</span> <span class="token number">800</span><span class="token punctuation">,</span> <span class="token function">sum</span><span class="token punctuation">(</span>Cost<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">,</span> facet<span class="token punctuation">(</span>Megapixels <span class="token operator"><</span> <span class="token number">3</span><span class="token punctuation">,</span> Megapixels <span class="token operator">>=</span> <span class="token number">3</span> <span class="token operator">and</span> Megapixels <span class="token operator"><</span> <span class="token number">7</span><span class="token punctuation">,</span> Megapixels <span class="token operator">>=</span> <span class="token number">7</span> <span class="token operator">and</span> Megapixels <span class="token operator"><</span> <span class="token number">10</span><span class="token punctuation">,</span> Megapixels <span class="token operator">>=</span> <span class="token number">10</span><span class="token punctuation">,</span> <span class="token function">min</span><span class="token punctuation">(</span>Cost<span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token function">max</span><span class="token punctuation">(</span>Cost<span class="token punctuation">)</span><span class="token punctuation">,</span> average<span class="token punctuation">(</span>Cost<span class="token punctuation">)</span><span class="token punctuation">)</span> </code> </pre> </div> <div class="additional-info__tab-item bg-gray-2"> <pre class="language-language-csharp c-mt-0"> <code class=" language-csharp"><span class="token comment">// return 3 facet results for cameras </span> <span class="token comment">// using 'Cameras/ByManufacturerModelCostDateOfListingAndMegapixels' index</span> <span class="token comment">// - first result will return aggregations (Count) based on 'Manufacturer'</span> <span class="token comment">// - second result will return aggregations (Count, Sum) based on 'Cost' </span> <span class="token comment">// and divided into supplied 'Cost' ranges</span> <span class="token comment">// - third result will return aggregations (Count, Min, Max, Average) based on 'Cost'</span> <span class="token comment">// and divided into supplied 'Megapixels' ranges</span> Dictionary<span class="token operator"><</span><span class="token keyword">string</span><span class="token punctuation">,</span> FacetResult<span class="token operator">></span> facetResults <span class="token operator">=</span> session <span class="token punctuation">.</span><span class="token generic-method"><span class="token function">Query</span><span class="token punctuation"><</span><span class="token class-name">Camera</span><span class="token punctuation">,</span> <span class="token class-name">Cameras_ByManufacturerModelCostDateOfListingAndMegapixels</span><span class="token punctuation">></span></span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">Where</span><span class="token punctuation">(</span>x <span class="token operator">=</span><span class="token operator">></span> x<span class="token punctuation">.</span>Cost <span class="token operator">>=</span> <span class="token number">100</span> <span class="token operator">&&</span> x<span class="token punctuation">.</span>Cost <span class="token operator"><=</span> <span class="token number">300</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">AggregateBy</span><span class="token punctuation">(</span>builder <span class="token operator">=</span><span class="token operator">></span> builder<span class="token punctuation">.</span><span class="token function">ByField</span><span class="token punctuation">(</span>x <span class="token operator">=</span><span class="token operator">></span> x<span class="token punctuation">.</span>Manufacturer<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">AndAggregateBy</span><span class="token punctuation">(</span>builder <span class="token operator">=</span><span class="token operator">></span> builder <span class="token punctuation">.</span><span class="token function">ByRanges</span><span class="token punctuation">(</span> camera <span class="token operator">=</span><span class="token operator">></span> camera<span class="token punctuation">.</span>Cost <span class="token operator"><</span> <span class="token number">200</span>m<span class="token punctuation">,</span> camera <span class="token operator">=</span><span class="token operator">></span> camera<span class="token punctuation">.</span>Cost <span class="token operator">>=</span> <span class="token number">200</span>m <span class="token operator">&&</span> camera<span class="token punctuation">.</span>Cost <span class="token operator"><</span> <span class="token number">400</span>m<span class="token punctuation">,</span> camera <span class="token operator">=</span><span class="token operator">></span> camera<span class="token punctuation">.</span>Cost <span class="token operator">>=</span> <span class="token number">400</span>m <span class="token operator">&&</span> camera<span class="token punctuation">.</span>Cost <span class="token operator"><</span> <span class="token number">600</span>m<span class="token punctuation">,</span> camera <span class="token operator">=</span><span class="token operator">></span> camera<span class="token punctuation">.</span>Cost <span class="token operator">>=</span> <span class="token number">600</span>m <span class="token operator">&&</span> camera<span class="token punctuation">.</span>Cost <span class="token operator"><</span> <span class="token number">800</span>m<span class="token punctuation">,</span> camera <span class="token operator">=</span><span class="token operator">></span> camera<span class="token punctuation">.</span>Cost <span class="token operator">>=</span> <span class="token number">800</span>m<span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">SumOn</span><span class="token punctuation">(</span>x <span class="token operator">=</span><span class="token operator">></span> x<span class="token punctuation">.</span>Cost<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">AndAggregateBy</span><span class="token punctuation">(</span>builder <span class="token operator">=</span><span class="token operator">></span> builder <span class="token punctuation">.</span><span class="token function">ByRanges</span><span class="token punctuation">(</span> camera <span class="token operator">=</span><span class="token operator">></span> camera<span class="token punctuation">.</span>Megapixels <span class="token operator"><</span> <span class="token number">3.0</span><span class="token punctuation">,</span> camera <span class="token operator">=</span><span class="token operator">></span> camera<span class="token punctuation">.</span>Megapixels <span class="token operator">>=</span> <span class="token number">3.0</span> <span class="token operator">&&</span> camera<span class="token punctuation">.</span>Megapixels <span class="token operator"><</span> <span class="token number">7.0</span><span class="token punctuation">,</span> camera <span class="token operator">=</span><span class="token operator">></span> camera<span class="token punctuation">.</span>Megapixels <span class="token operator">>=</span> <span class="token number">7.0</span> <span class="token operator">&&</span> camera<span class="token punctuation">.</span>Megapixels <span class="token operator"><</span> <span class="token number">10.0</span><span class="token punctuation">,</span> camera <span class="token operator">=</span><span class="token operator">></span> camera<span class="token punctuation">.</span>Megapixels <span class="token operator">>=</span> <span class="token number">10.0</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">MinOn</span><span class="token punctuation">(</span>x <span class="token operator">=</span><span class="token operator">></span> x<span class="token punctuation">.</span>Cost<span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">MaxOn</span><span class="token punctuation">(</span>x <span class="token operator">=</span><span class="token operator">></span> x<span class="token punctuation">.</span>Cost<span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">AverageOn</span><span class="token punctuation">(</span>x <span class="token operator">=</span><span class="token operator">></span> x<span class="token punctuation">.</span>Cost<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">Execute</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code> </pre> </div> </div> <div id="acf-block-additional-info-block_609d3a5041c98-tab-1" class="additional-info__tab tab-pane fade"> <div class="additional-info__tab-item bg-gray-2"> <pre class="language-language-csharp c-mt-0"> <code class=" language-csharp"><span class="token comment">// return 3 facet results for cameras </span> <span class="token comment">// using 'Cameras/ByManufacturerModelCostDateOfListingAndMegapixels' index</span> <span class="token comment">// - first result will return aggregations (Count) based on 'Manufacturer'</span> <span class="token comment">// - second result will return aggregations (Count, Sum) based on 'Cost' </span> <span class="token comment">// and divided into supplied 'Cost' ranges</span> <span class="token comment">// - third result will return aggregations (Count, Min, Max, Average) based on 'Cost'</span> <span class="token comment">// and divided into supplied 'Megapixels' ranges</span> Dictionary<span class="token operator"><</span><span class="token keyword">string</span><span class="token punctuation">,</span> FacetResult<span class="token operator">></span> facetResults <span class="token operator">=</span> session <span class="token punctuation">.</span><span class="token generic-method"><span class="token function">Query</span><span class="token punctuation"><</span><span class="token class-name">Camera</span><span class="token punctuation">,</span> <span class="token class-name">Cameras_ByManufacturerModelCostDateOfListingAndMegapixels</span><span class="token punctuation">></span></span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">Where</span><span class="token punctuation">(</span>x <span class="token operator">=</span><span class="token operator">></span> x<span class="token punctuation">.</span>Cost <span class="token operator">>=</span> <span class="token number">100</span> <span class="token operator">&&</span> x<span class="token punctuation">.</span>Cost <span class="token operator"><=</span> <span class="token number">300</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">AggregateBy</span><span class="token punctuation">(</span>builder <span class="token operator">=</span><span class="token operator">></span> builder<span class="token punctuation">.</span><span class="token function">ByField</span><span class="token punctuation">(</span>x <span class="token operator">=</span><span class="token operator">></span> x<span class="token punctuation">.</span>Manufacturer<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">AndAggregateBy</span><span class="token punctuation">(</span>builder <span class="token operator">=</span><span class="token operator">></span> builder <span class="token punctuation">.</span><span class="token function">ByRanges</span><span class="token punctuation">(</span> camera <span class="token operator">=</span><span class="token operator">></span> camera<span class="token punctuation">.</span>Cost <span class="token operator"><</span> <span class="token number">200</span>m<span class="token punctuation">,</span> camera <span class="token operator">=</span><span class="token operator">></span> camera<span class="token punctuation">.</span>Cost <span class="token operator">>=</span> <span class="token number">200</span>m <span class="token operator">&&</span> camera<span class="token punctuation">.</span>Cost <span class="token operator"><</span> <span class="token number">400</span>m<span class="token punctuation">,</span> camera <span class="token operator">=</span><span class="token operator">></span> camera<span class="token punctuation">.</span>Cost <span class="token operator">>=</span> <span class="token number">400</span>m <span class="token operator">&&</span> camera<span class="token punctuation">.</span>Cost <span class="token operator"><</span> <span class="token number">600</span>m<span class="token punctuation">,</span> camera <span class="token operator">=</span><span class="token operator">></span> camera<span class="token punctuation">.</span>Cost <span class="token operator">>=</span> <span class="token number">600</span>m <span class="token operator">&&</span> camera<span class="token punctuation">.</span>Cost <span class="token operator"><</span> <span class="token number">800</span>m<span class="token punctuation">,</span> camera <span class="token operator">=</span><span class="token operator">></span> camera<span class="token punctuation">.</span>Cost <span class="token operator">>=</span> <span class="token number">800</span>m<span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">SumOn</span><span class="token punctuation">(</span>x <span class="token operator">=</span><span class="token operator">></span> x<span class="token punctuation">.</span>Cost<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">AndAggregateBy</span><span class="token punctuation">(</span>builder <span class="token operator">=</span><span class="token operator">></span> builder <span class="token punctuation">.</span><span class="token function">ByRanges</span><span class="token punctuation">(</span> camera <span class="token operator">=</span><span class="token operator">></span> camera<span class="token punctuation">.</span>Megapixels <span class="token operator"><</span> <span class="token number">3.0</span><span class="token punctuation">,</span> camera <span class="token operator">=</span><span class="token operator">></span> camera<span class="token punctuation">.</span>Megapixels <span class="token operator">>=</span> <span class="token number">3.0</span> <span class="token operator">&&</span> camera<span class="token punctuation">.</span>Megapixels <span class="token operator"><</span> <span class="token number">7.0</span><span class="token punctuation">,</span> camera <span class="token operator">=</span><span class="token operator">></span> camera<span class="token punctuation">.</span>Megapixels <span class="token operator">>=</span> <span class="token number">7.0</span> <span class="token operator">&&</span> camera<span class="token punctuation">.</span>Megapixels <span class="token operator"><</span> <span class="token number">10.0</span><span class="token punctuation">,</span> camera <span class="token operator">=</span><span class="token operator">></span> camera<span class="token punctuation">.</span>Megapixels <span class="token operator">>=</span> <span class="token number">10.0</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">MinOn</span><span class="token punctuation">(</span>x <span class="token operator">=</span><span class="token operator">></span> x<span class="token punctuation">.</span>Cost<span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">MaxOn</span><span class="token punctuation">(</span>x <span class="token operator">=</span><span class="token operator">></span> x<span class="token punctuation">.</span>Cost<span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">AverageOn</span><span class="token punctuation">(</span>x <span class="token operator">=</span><span class="token operator">></span> x<span class="token punctuation">.</span>Cost<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">Execute</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code> </pre> </div> </div> </div> </div> </section> </div> <div id="acf-block-additional-info-block_60780bd4917e9" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 medium"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center"> <i class="icon-book-filled font-size-19 d-inline-block c-mr-only-2"></i> Read more </h4> <div class="additional-info__content font-size-13" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>You can read more about faceted search <a href="https://ravendb.net/docs/article-page/latest/csharp/indexes/querying/faceted-search">here</a>.</li> </ul> </div> </div> </section> </div> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/querying/morelikethis" data-title="MoreLikeThis" data-target-modal="feature-3187" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #da97ff" class="features-category-section__feature-icon icon-more-like-this c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> MoreLikeThis </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Use in queries on specific fields to include documents with similar values.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-3187"> <div class="d-none"> <div class="js-features-category__meta-title">More Like This Query | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">Finding similar documents has never been easier! Use built-in MoreLikeThis feature to retrieve them. MLT requires access to the text in the index. Let's start by defining an index.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #9457b5" class="features-category__modal-icon icon-more-like-this c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Querying </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #9457b5" class="font-size-70 icon-more-like-this"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> MoreLikeThis </h2> </div> <div class="entry-content"> <p>Finding similar documents has never been easier! Use our built-in <em>MoreLikeThis</em> feature to retrieve them.</p> <p>Let’s start by defining an index, where we will index contents of the articles (ArticleBody) using ‘StandardAnalyzer’ from Lucene and storing the results inside the Lucene index.</p> <div id="acf-block-additional-info-block_609e7bd124bd3" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 light"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> C# </h4> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-csharp"> <code class=" language-csharp"><span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">Articles_ByArticleBody</span> <span class="token punctuation">:</span> <span class="token class-name">AbstractIndexCreationTask</span><span class="token operator"><</span>Article<span class="token operator">></span> <span class="token punctuation">{</span> <span class="token keyword">public</span> <span class="token function">Articles_ByArticleBody</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> Map <span class="token operator">=</span> docs <span class="token operator">=</span><span class="token operator">></span> <span class="token keyword">from</span> doc <span class="token keyword">in</span> docs <span class="token keyword">select</span> <span class="token keyword">new</span> <span class="token punctuation">{</span> doc<span class="token punctuation">.</span>ArticleBody <span class="token punctuation">}</span><span class="token punctuation">;</span> Stores<span class="token punctuation">.</span><span class="token function">Add</span><span class="token punctuation">(</span>x <span class="token operator">=</span><span class="token operator">></span> x<span class="token punctuation">.</span>ArticleBody<span class="token punctuation">,</span> FieldStorage<span class="token punctuation">.</span>Yes<span class="token punctuation">)</span><span class="token punctuation">;</span> Analyzers<span class="token punctuation">.</span><span class="token function">Add</span><span class="token punctuation">(</span>x <span class="token operator">=</span><span class="token operator">></span> x<span class="token punctuation">.</span>ArticleBody<span class="token punctuation">,</span> <span class="token string">"StandardAnalyzer"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> </code> </pre> </div> </div> </section> </div> <p>At this point everything needed to use <em>MoreLikeThis</em> is done and we can search for our similar articles:</p> <div id="acf-block-additional-info-block_609e7bfb24bd5" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5"> <ul class="nav d-flex list-unstyled"> <li> <a class="additional-info__button font-size-14 w-auto line-height-1-5 font-weight-black d-inline-flex align-items-center active" data-toggle="tab" href="#acf-block-additional-info-block_609e7bfb24bd5-tab-0"> RQL </a> </li> <li> <a class="additional-info__button font-size-14 w-auto line-height-1-5 font-weight-black d-inline-flex align-items-center" data-toggle="tab" href="#acf-block-additional-info-block_609e7bfb24bd5-tab-1"> C# </a> </li> </ul> <div class="additional-info__content font-size-13 additional-info__content--alt" c-p-only-2 c-p-md-only-3> <div class="entry-content tab-content"> <div id="acf-block-additional-info-block_609e7bfb24bd5-tab-0" class="additional-info__tab tab-pane fade active show"> <div class="additional-info__tab-item bg-gray-2"> <pre class="language-language-sql c-mt-0"> <code class=" language-sql"><span class="token comment">// return all articles</span> <span class="token comment">// similar to 'articles/1'</span> <span class="token comment">// using 'Articles/ByArticleBody' index</span> <span class="token keyword">from</span> <span class="token keyword">index</span> <span class="token string">'Articles/ByArticleBody'</span> <span class="token keyword">where</span> morelikethis<span class="token punctuation">(</span>id<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=</span> <span class="token string">'articles/1'</span><span class="token punctuation">)</span> </code> </pre> </div> </div> <div id="acf-block-additional-info-block_609e7bfb24bd5-tab-1" class="additional-info__tab tab-pane fade"> <div class="additional-info__tab-item bg-gray-2"> <pre class="language-language-csharp c-mt-0"> <code class=" language-csharp"><span class="token comment">// return all articles</span> <span class="token comment">// similar to 'articles/1'</span> <span class="token comment">// using 'Articles/ByArticleBody' index</span> List<span class="token operator"><</span>Article<span class="token operator">></span> articles <span class="token operator">=</span> session <span class="token punctuation">.</span><span class="token generic-method"><span class="token function">Query</span><span class="token punctuation"><</span><span class="token class-name">Article</span><span class="token punctuation">,</span> <span class="token class-name">Articles_ByArticleBody</span><span class="token punctuation">></span></span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">MoreLikeThis</span><span class="token punctuation">(</span>builder <span class="token operator">=</span><span class="token operator">></span> builder <span class="token punctuation">.</span><span class="token function">UsingDocument</span><span class="token punctuation">(</span>x <span class="token operator">=</span><span class="token operator">></span> x<span class="token punctuation">.</span>Id <span class="token operator">==</span> <span class="token string">"articles/1"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">ToList</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code> </pre> </div> </div> </div> </div> </section> </div> <div id="acf-block-additional-info-block_60780d281355f" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 medium"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #303c4c"> <i class="icon-book-filled font-size-19 d-inline-block c-mr-only-2"></i> Read more </h4> <div class="additional-info__content font-size-13" style="background-color: #303c4c" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>You can read more about <em>MoreLikeThis</em> <a href="https://ravendb.net/docs/article-page/latest/csharp/indexes/querying/morelikethis">here</a>.</li> </ul> </div> </div> </section> </div> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/querying/spatial" data-title="Spatial" data-target-modal="feature-3189" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #da97ff" class="features-category-section__feature-icon icon-spatial c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Spatial </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Search using geographical data.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-3189"> <div class="d-none"> <div class="js-features-category__meta-title">Spatial | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">Spatial field can be created from Coordinates (latitude and longitude), or directly from WKT shape.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #9457b5" class="features-category__modal-icon icon-spatial c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Querying </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #9457b5" class="font-size-70 icon-spatial"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Spatial </h2> </div> <div class="entry-content"> <p>Spatial field can be created from <em>Coordinates</em> (latitude and longitude), or directly from <em>WKT shape</em> using following strategies:</p> <ul class="wp-block-list"><li>with <em>BoundingBox</em> or <em>QuadPrefixTree</em></li><li>Geographical with <em>BoundingBox</em>, <em>GeohashPrefixTree</em> (default) or <em>QuadPrefixTree</em></li></ul> <p>RQL itself and our Client API contain built-in methods to help you find the documents with the search areas that can be defined using:</p> <ul class="wp-block-list"><li>within (and within radius)</li><li>contains</li><li>disjoin</li><li>intersect</li><li>custom relation to WKT shape</li></ul> <div id="acf-block-additional-info-block_609e7ca27d84c" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5"> <ul class="nav d-flex list-unstyled"> <li> <a class="additional-info__button font-size-14 w-auto line-height-1-5 font-weight-black d-inline-flex align-items-center active" data-toggle="tab" href="#acf-block-additional-info-block_609e7ca27d84c-tab-0"> RQL </a> </li> <li> <a class="additional-info__button font-size-14 w-auto line-height-1-5 font-weight-black d-inline-flex align-items-center" data-toggle="tab" href="#acf-block-additional-info-block_609e7ca27d84c-tab-1"> C# </a> </li> <li> <a class="additional-info__button font-size-14 w-auto line-height-1-5 font-weight-black d-inline-flex align-items-center" data-toggle="tab" href="#acf-block-additional-info-block_609e7ca27d84c-tab-2"> Java </a> </li> <li> <a class="additional-info__button font-size-14 w-auto line-height-1-5 font-weight-black d-inline-flex align-items-center" data-toggle="tab" href="#acf-block-additional-info-block_609e7ca27d84c-tab-3"> Node.js </a> </li> </ul> <div class="additional-info__content font-size-13 additional-info__content--alt" c-p-only-2 c-p-md-only-3> <div class="entry-content tab-content"> <div id="acf-block-additional-info-block_609e7ca27d84c-tab-0" class="additional-info__tab tab-pane fade active show"> <div class="additional-info__tab-item bg-gray-2"> <pre class="language-language-sql c-mt-0"> <code class=" language-sql"><span class="token comment">// return all the companies </span> <span class="token comment">// within radius of 300km </span> <span class="token comment">// from 45 latitude and 4 longitude coordinate</span> <span class="token keyword">from</span> Companies <span class="token keyword">where</span> spatial<span class="token punctuation">.</span><span class="token keyword">within</span><span class="token punctuation">(</span> spatial<span class="token punctuation">.</span><span class="token keyword">point</span><span class="token punctuation">(</span>Address<span class="token punctuation">.</span>Location<span class="token punctuation">.</span>Latitude<span class="token punctuation">,</span> Address<span class="token punctuation">.</span>Location<span class="token punctuation">.</span>Longitude<span class="token punctuation">)</span><span class="token punctuation">,</span> spatial<span class="token punctuation">.</span>circle<span class="token punctuation">(</span><span class="token number">300</span><span class="token punctuation">,</span> <span class="token number">45</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">)</span><span class="token punctuation">)</span> </code> </pre> </div> </div> <div id="acf-block-additional-info-block_609e7ca27d84c-tab-1" class="additional-info__tab tab-pane fade"> <div class="additional-info__tab-item bg-gray-2"> <pre class="language-language-csharp c-mt-0"> <code class=" language-csharp"><span class="token comment">// return all the companies </span> <span class="token comment">// within radius of 300km </span> <span class="token comment">// from 45 latitude and 4 longitude coordinate</span> List<span class="token operator"><</span>Company<span class="token operator">></span> companies <span class="token operator">=</span> session <span class="token punctuation">.</span><span class="token generic-method"><span class="token function">Query</span><span class="token punctuation"><</span><span class="token class-name">Company</span><span class="token punctuation">></span></span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">Spatial</span><span class="token punctuation">(</span> factory <span class="token operator">=</span><span class="token operator">></span> factory <span class="token punctuation">.</span><span class="token function">Point</span><span class="token punctuation">(</span> x <span class="token operator">=</span><span class="token operator">></span> x<span class="token punctuation">.</span>Address<span class="token punctuation">.</span>Location<span class="token punctuation">.</span>Latitude<span class="token punctuation">,</span> x <span class="token operator">=</span><span class="token operator">></span> x<span class="token punctuation">.</span>Address<span class="token punctuation">.</span>Location<span class="token punctuation">.</span>Longitude<span class="token punctuation">)</span><span class="token punctuation">,</span> criteria <span class="token operator">=</span><span class="token operator">></span> criteria<span class="token punctuation">.</span><span class="token function">WithinRadius</span><span class="token punctuation">(</span><span class="token number">300</span><span class="token punctuation">,</span> <span class="token number">45</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">ToList</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code> </pre> </div> </div> <div id="acf-block-additional-info-block_609e7ca27d84c-tab-2" class="additional-info__tab tab-pane fade"> <div class="additional-info__tab-item bg-gray-2"> <pre class="language-language-java c-mt-0"> <code class=" language-java"><span class="token comment">// return all the companies </span> <span class="token comment">// within radius of 300km </span> <span class="token comment">// from 45 latitude and 4 longitude coordinate</span> List<span class="token generics function"><span class="token punctuation"><</span>Company<span class="token punctuation">></span></span> companies <span class="token operator">=</span> session <span class="token punctuation">.</span><span class="token function">query</span><span class="token punctuation">(</span>Company<span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">spatial</span><span class="token punctuation">(</span> <span class="token keyword">new</span> <span class="token class-name">PointField</span><span class="token punctuation">(</span><span class="token string">"address.location.latitude"</span><span class="token punctuation">,</span> <span class="token string">"address.location.longitude"</span><span class="token punctuation">)</span><span class="token punctuation">,</span> factory <span class="token operator">-</span><span class="token operator">></span> factory<span class="token punctuation">.</span><span class="token function">withinRadius</span><span class="token punctuation">(</span><span class="token number">300</span><span class="token punctuation">,</span> <span class="token number">45</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">toList</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code> </pre> </div> </div> <div id="acf-block-additional-info-block_609e7ca27d84c-tab-3" class="additional-info__tab tab-pane fade"> <div class="additional-info__tab-item bg-gray-2"> <pre class="language-language-js c-mt-0"> <code class=" language-js"><span class="token comment">// return all the companies </span> <span class="token comment">// within radius of 300km </span> <span class="token comment">// from 45 latitude and 4 longitude coordinate</span> <span class="token keyword">const</span> companies <span class="token operator">=</span> <span class="token keyword">await</span> session <span class="token punctuation">.</span><span class="token function">query</span><span class="token punctuation">(</span><span class="token punctuation">{</span> collection<span class="token punctuation">:</span> <span class="token string">"companies"</span> <span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">spatial</span><span class="token punctuation">(</span> <span class="token keyword">new</span> <span class="token class-name">PointField</span><span class="token punctuation">(</span><span class="token string">"address.location.latitude"</span><span class="token punctuation">,</span> <span class="token string">"address.location.longitude"</span><span class="token punctuation">)</span><span class="token punctuation">,</span> factory <span class="token operator">=></span> factory<span class="token punctuation">.</span><span class="token function">withinRadius</span><span class="token punctuation">(</span><span class="token number">300</span><span class="token punctuation">,</span> <span class="token number">45</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">all</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code> </pre> </div> </div> </div> </div> </section> </div> <div id="acf-block-heading-with-tooltip-and-content-block_61a4fdaa604fb" class="acf-block-heading-with-tooltip-and-content c-pt-4 c-pb-4"> <div class="acf-block-heading-with-tooltip-and-content__item d-flex align-items-start align-items-md-center flex-column flex-md-row"> <h4 class="acf-block-heading-with-tooltip-and-content__heading c-mt-4 c-mt-md-0 line-height-2 font-weight-extra-bold font-size-20">Spatial Map View</h4> </div> <div class="c-mt-3 entry-content"> <p>RavenDB Studio identifies (starting with version 5.2) queries whose results include spatial data and presents queried regions and retrieved locations in a dedicated Map View. You can zoom out for an overview and in for details, see multiple search regions in different colors, and toggle various display options for easier visibility and discoverability.</p> <p><a href="https://ravendb.net/wp-content/uploads/2021/06/map-view.jpg"><img loading="lazy" decoding="async" loading="lazy" class="alignnone wp-image-5833 size-full" src="https://ravendb.net/wp-content/uploads/2021/06/map-view.jpg" alt="Spatial Map View" width="1433" height="588" srcset="https://ravendb.net/wp-content/uploads/2021/06/map-view.jpg 1433w, https://ravendb.net/wp-content/uploads/2021/06/map-view-342x140.jpg 342w, https://ravendb.net/wp-content/uploads/2021/06/map-view-684x281.jpg 684w, https://ravendb.net/wp-content/uploads/2021/06/map-view-22x9.jpg 22w, https://ravendb.net/wp-content/uploads/2021/06/map-view-44x18.jpg 44w, https://ravendb.net/wp-content/uploads/2021/06/map-view-62x25.jpg 62w, https://ravendb.net/wp-content/uploads/2021/06/map-view-124x51.jpg 124w, https://ravendb.net/wp-content/uploads/2021/06/map-view-288x118.jpg 288w, https://ravendb.net/wp-content/uploads/2021/06/map-view-575x236.jpg 575w, https://ravendb.net/wp-content/uploads/2021/06/map-view-122x50.jpg 122w, https://ravendb.net/wp-content/uploads/2021/06/map-view-244x100.jpg 244w, https://ravendb.net/wp-content/uploads/2021/06/map-view-570x234.jpg 570w, https://ravendb.net/wp-content/uploads/2021/06/map-view-1140x468.jpg 1140w, https://ravendb.net/wp-content/uploads/2021/06/map-view-420x172.jpg 420w, https://ravendb.net/wp-content/uploads/2021/06/map-view-840x345.jpg 840w" sizes="auto, (max-width: 1433px) 100vw, 1433px" /></a></p> </div> </div> <div id="acf-block-additional-info-block_60780df07678f" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 medium"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #303c4c"> <i class="icon-book-filled font-size-19 d-inline-block c-mr-only-2"></i> Read more </h4> <div class="additional-info__content font-size-13" style="background-color: #303c4c" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>You can read more about spatial queries <a href="https://ravendb.net/docs/article-page/latest/csharp/indexes/querying/spatial">here</a>.</li> </ul> </div> </div> </section> </div> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/querying/patching" data-title="Patching" data-target-modal="feature-3191" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #da97ff" class="features-category-section__feature-icon icon-patching c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Patching </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Reduce expensive trips to the server by updating documents in one trip.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-3191"> <div class="d-none"> <div class="js-features-category__meta-title">Patching | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">Update documents directly on the server-side using our integrated JavaScript-based patching API, a part of RQL syntax.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #9457b5" class="features-category__modal-icon icon-patching c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Querying </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #9457b5" class="font-size-70 icon-patching"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Patching </h2> </div> <div class="entry-content"> <p>Update documents directly on the <em>server-side</em> using our integrated JavaScript-based patching API, a part of RQL syntax.</p> <div id="acf-block-additional-info-block_609e7d4aa30d6" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 light"> <div class="d-flex flex-column-reverse flex-sm-row align-items-start align-items-md-end"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> Filter-out an array item </h4> </div> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-sql"> <code class=" language-sql"><span class="token keyword">from</span> Orders <span class="token keyword">update</span> { this<span class="token punctuation">.</span><span class="token keyword">Lines</span> <span class="token operator">=</span> this<span class="token punctuation">.</span><span class="token keyword">Lines</span><span class="token punctuation">.</span>filter<span class="token punctuation">(</span>l <span class="token operator">=</span><span class="token operator">></span> l<span class="token punctuation">.</span>Product <span class="token operator">!=</span> <span class="token string">'products/1-A'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> } </code> </pre> </div> </div> </section> <section class="additional-info c-my-5 light"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> Denormalize the company name </h4> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-sql"> <code class=" language-sql"><span class="token keyword">from</span> Orders <span class="token keyword">as</span> o <span class="token keyword">load</span> o<span class="token punctuation">.</span>Company <span class="token keyword">as</span> c <span class="token keyword">update</span> { o<span class="token punctuation">.</span>CompanyName <span class="token operator">=</span> c<span class="token punctuation">.</span>Name<span class="token punctuation">;</span> } </code> </pre> </div> </div> </section> <section class="additional-info c-my-5 light"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> Use the javascript to patch </h4> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-sql"> <code class=" language-sql"><span class="token keyword">from</span> <span class="token keyword">index</span> <span class="token string">'Orders/Totals'</span> <span class="token keyword">as</span> i <span class="token keyword">where</span> i<span class="token punctuation">.</span>Total <span class="token operator">></span> <span class="token number">10000</span> <span class="token keyword">load</span> i<span class="token punctuation">.</span>Company <span class="token keyword">as</span> c <span class="token keyword">update</span> { i<span class="token punctuation">.</span>LowerName <span class="token operator">=</span> c<span class="token punctuation">.</span>Name<span class="token punctuation">.</span>toLowerCase<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> } </code> </pre> </div> </div> </section> </div> <div id="acf-block-additional-info-block_60780edd43e3b" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 medium"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #303c4c"> <i class="icon-book-filled font-size-19 d-inline-block c-mr-only-2"></i> Read more </h4> <div class="additional-info__content font-size-13" style="background-color: #303c4c" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>You can read more about <em>Single-Document</em> patching <a class="" href="https://ravendb.net/docs/article-page/latest/csharp/client-api/operations/patching/single-document" target="_blank" rel="noopener">here</a>.</li> <li>If you are interested in <em>Set-Based</em> patching then please reffer to <a class="" href="https://ravendb.net/docs/article-page/latest/csharp/client-api/operations/patching/set-based" target="_blank" rel="noopener">this article</a>.</li> </ul> </div> </div> </section> </div> </div> </div> </div> </div> </div> </div> </section> </section> <section id="indexes" class="section-features c-pt-4 c-pb-5" style="background-color: #22252b"> <h4 class="font-size-36 font-weight-bold text-uppercase c-pl-4 c-pb-5 c-mt-6 c-mt-lg-4">Indexes</h4> <section class="features-category-section"> <div class="container"> <div class="row"> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/indexes/intelligent-auto-indexes" data-title="Intelligent Auto Indexes" data-target-modal="feature-3193" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #d45598" class="features-category-section__feature-icon icon-auto-indexes c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Intelligent Auto Indexes </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Automatically-generated indexes are continuously adapted to changing query needs.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-3193"> <div class="d-none"> <div class="js-features-category__meta-title">Intelligent Auto Indexes | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">Auto Indexes are designed when there is no need to customize the capabilities extensively. With Auto Indexes you will be able to perform queries, including advanced ones like full-text search.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #d45598" class="features-category__modal-icon icon-auto-indexes c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Indexes </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #d45598" class="font-size-70 icon-auto-indexes"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Intelligent Auto Indexes </h2> </div> <div class="entry-content"> <p>Auto Indexes are designed when there is no need to customize the capabilities extensively.</p> <p>With Auto Indexes you will be able to perform queries, including advanced ones like <em>full-text search</em>.</p> <p>RavenDB supports following auto index types:</p> <ul class="wp-block-list"><li>Auto Map indexes</li><li>Auto Map-Reduce indexes</li></ul> <p>RavenDB learns the behavior of your application to merge auto indexes to reduce your overhead. It will schedule unused auto indexes for deletion.</p> <div id="acf-block-additional-info-block_2cb7e59808504a822ac19d4d30c3bb92" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 medium"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #303c4c"> <i class="icon-book-filled font-size-19 d-inline-block c-mr-only-2"></i> Read more </h4> <div class="additional-info__content font-size-13" style="background-color: #303c4c" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>You can read more about Auto Indexes <a href="https://ravendb.net/docs/article-page/latest/csharp/indexes/creating-and-deploying#auto-indexes">here</a>.</li> </ul> </div> </div> </section> </div> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/indexes/powerful-static-indexes" data-title="Powerful Static Indexes" data-target-modal="feature-3194" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #d45598" class="features-category-section__feature-icon icon-static-indexes c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Powerful Static Indexes </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Manually-created indexes can include powerful tools to simplify querying and boost performance.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-3194"> <div class="d-none"> <div class="js-features-category__meta-title">Powerful Static Indexes | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">With Static Indexes, your indexing capabilities are almost endless. Use C# LINQ or JavaScript functions to shape the indexation to address your needs by defining single or multiple mapping functions and reduce (aggregate) the results if necessary.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #d45598" class="features-category__modal-icon icon-static-indexes c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Indexes </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #d45598" class="font-size-70 icon-static-indexes"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Powerful Static Indexes </h2> </div> <div class="entry-content"> <p>With Static Indexes, your indexing capabilities are almost endless. Use C# LINQ or JavaScript functions to shape the indexation to address your needs by defining single or multiple mapping functions and reduce (aggregate) the results if necessary.</p> <p>RavenDB supports the following index types:</p> <ul class="wp-block-list"><li>Map indexes</li><li>Multi-Map indexes</li><li>Map-Reduce indexes</li></ul> <p>Each Static Index allows you to configure the behavior of each indexed field with the following options:</p> <ul class="wp-block-list"><li>Store the data directly in index, allowing you to fetch data directly from it without the need to fetch the document from disk</li><li>Turn on a full-text search with an additional option to use your own custom analyzer</li><li>Turn on suggestions</li><li>Index document extensions as well as their contents – including attachments, time series, and counters.</li><li>Many more</li></ul> <p>You can override server or database settings regarding indexing on a per index basis or add your own custom C# or JavaScript code to be used during indexing.</p> <div id="acf-block-additional-info-block_58acc5997e2daa7639e74be9fb20c0d7" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 medium"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #303c4c"> <i class="icon-book-filled font-size-19 d-inline-block c-mr-only-2"></i> Read more </h4> <div class="additional-info__content font-size-13" style="background-color: #303c4c" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>You can read more about Static Indexes <a href="https://ravendb.net/docs/article-page/latest/csharp/indexes/map-indexes">here</a>.</li> <li>You can read more about JavaScript Indexes <a href="https://ravendb.net/docs/article-page/latest/csharp/indexes/javascript-indexes">here</a>.</li> </ul> </div> </div> </section> </div> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/indexes/indexing-attachments" data-title="Indexing Attachments" data-target-modal="feature-3195" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #d45598" class="features-category-section__feature-icon icon-indexes-attachments c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Indexing Attachments </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Attachment content and metadata can now be indexed using static indexes.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-3195"> <div class="d-none"> <div class="js-features-category__meta-title">Indexing Attachments | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">Attachment content and metadata can now be indexed using static indexes.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #d45598" class="features-category__modal-icon icon-indexes-attachments c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Indexes </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #d45598" class="font-size-70 icon-indexes-attachments"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Indexing Attachments </h2> </div> <div class="entry-content"> <p>Attachment content and metadata can now be indexed using static indexes.</p> <p>An attachment is a kind of data that is associated with some document, but either it can’t be expressed as JSON, or we’d prefer to load and modify it separately from the document itself. Examples of attachments might be images, audio, or just pure binary data.</p> <p>The attachment content can be loaded to the index as a Stream or as a string. Besides that, the following metadata can be accessed: the attachment name, its size, its hash, and its content type.</p> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/indexes/importing-nuget-packages" data-title="Importing NuGet Packages" data-target-modal="feature-3196" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #d45598" class="features-category-section__feature-icon icon-nuget c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Importing NuGet Packages </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Import libraries from NuGet and other sources into your indexes.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-3196"> <div class="d-none"> <div class="js-features-category__meta-title">Importing NuGet Packages | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">The new Additional Assemblies feature allows you to import libraries from NuGet and other sources into your indexes so that they can be used within the index logic itself.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #d45598" class="features-category__modal-icon icon-nuget c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Indexes </small> <small style="color: #8a6d3b;"> PROFESSIONAL AND ENTERPRISE </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #d45598" class="font-size-70 icon-nuget"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Importing NuGet Packages </h2> </div> <div class="entry-content"> <p>The new Additional Assemblies feature allows you to import libraries from NuGet and other sources into your indexes so that they can be used within the index logic itself. This makes it possible to integrate a variety of existing technologies such as:</p> <ul class="wp-block-list"><li>Machine Learning (ML) – see <a href="https://ayende.com/blog/192001-B/using-machine-learning-with-ravendb" class="external" rel="nofollow">this blog post</a> by Oren Eini for a step-by-step example of using image recognition to index pictures with descriptive tags.</li><li>Optical Character Recognition (OCR) Image Processing – scan flat images to see if text can be extracted.</li><li>File-type Conversion – see <a href="https://ayende.com/blog/192385-A/ravendb-5-1-features-searching-in-office-documents" target="_blank" rel="noreferrer noopener nofollow" class="external">this blog post</a> for an example of how to scan Word and Excel files (.docx and .xlsx) and extract text which can then be indexed.</li></ul> <p>Besides NuGet, Additional Assemblies also allows you to import libraries from runtime or from a local folder.</p> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/indexes/indexing-performance-and-map-reduce-visualizers" data-title="Indexing Performance and Map-Reduce Visualizers" data-target-modal="feature-3197" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #d45598" class="features-category-section__feature-icon icon-map-reduce c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Indexing Performance and Map-Reduce Visualizers </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Monitor and optimize indexes by taking a peek into what is going on internally.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-3197"> <div class="d-none"> <div class="js-features-category__meta-title">Indexing Performance and Map-Reduce Visualizers | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">We created an indexing performance graph, to see indexing internals, particular steps in the process, their timings, and the amount of input and output documents. RavenDB makes indexing as transparent as possible to help you make the best analysis and take the optimal next steps.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #d45598" class="features-category__modal-icon icon-map-reduce c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Indexes </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #d45598" class="font-size-70 icon-map-reduce"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Indexing Performance and Map-Reduce Visualizers </h2> </div> <div class="entry-content"> <p>As a rule, RavenDB gives you as much valuable debugging information as possible.</p> <p>We created an indexing performance graph, to see indexing internals, particular steps in the process, their timings, and the amount of input and output documents. RavenDB makes indexing as transparent as possible to help you make the best analysis and take the optimal next steps.</p> <p>Map-Reduce visualizer will take you into deepest abyss of the map-reduction itself. You can understand what mapping results your documents are yielding and follow reduction steps that are taking place before you reach the final result.</p> <div id="acf-block-additional-info-block_77d91b7705ba72df023b7fef7ba3fcba" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 medium"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #303c4c"> <i class="icon-book-filled font-size-19 d-inline-block c-mr-only-2"></i> Read more </h4> <div class="additional-info__content font-size-13" style="background-color: #303c4c" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>You can read more about Indexing Performance <a href="https://ravendb.net/docs/article-page/latest/csharp/studio/database/indexes/indexing-performance">here</a>.</li> <li>You can read more about Map-Reduce Visualizer <a href="https://ravendb.net/docs/article-page/latest/csharp/studio/database/indexes/map-reduce-visualizer">here</a>.</li> </ul> </div> </div> </section> </div> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <div class="features-category-section__feature d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #d45598" class="features-category-section__feature-icon icon-compare-exchange-indexing c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Compare Exchange Indexing </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Include compare-exchange values in indexes.</p> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/indexes/custom-analyzers" data-title="Custom Analyzers" data-target-modal="feature-5793" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #d45598" class="features-category-section__feature-icon icon-custom-analyzers c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Custom Analyzers </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Customize analyzers that split the text into searchable tokens.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-5793"> <div class="d-none"> <div class="js-features-category__meta-title">Custom Analyzers | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">RavenDB comes with several Lucene analyzers, and you can also add your own custom analyzers. Version 5.2 has a new interface in the Studio for creating custom analyzers and using them in indexes.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #d45598" class="features-category__modal-icon icon-custom-analyzers c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Indexes </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #d45598" class="font-size-70 icon-custom-analyzers"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Custom Analyzers </h2> </div> <div class="entry-content"> <p>Indexing text requires an <a href="/docs/article-page/latest/csharp/indexes/using-analyzers">analyzer</a> that splits the text into tokens which can then be searched.</p> <p>For example, some analyzers tokenize words separated by whitespace characters, while the NGram analyzer divides the text into tokens of the same number of characters.</p> <p>RavenDB comes with several Lucene analyzers, and you can also add your own custom analyzers. Version 5.2 has a new interface in the Studio for creating custom analyzers and using them in indexes.</p> <div id="acf-block-additional-info-block_60cb070a44a38" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 medium"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #303c4c"> <i class="icon-book-filled font-size-19 d-inline-block c-mr-only-2"></i> Read more </h4> <div class="additional-info__content font-size-13" style="background-color: #303c4c" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>You can read more about defining Custom Analyzers <a href="https://ravendb.net/docs/article-page/latest/csharp/studio/database/settings/custom-analyzers">here</a>.</li> </ul> </div> </div> </section> </div> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/indexes/rolling-index-deployment" data-title="Rolling Index Deployment" data-target-modal="feature-5792" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #d45598" class="features-category-section__feature-icon icon-rolling-index-deployment c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Rolling Index Deployment </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">To preserve cluster availability, run heavy indexing operations one node at a time.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-5792"> <div class="d-none"> <div class="js-features-category__meta-title">Rolling Index Deployment | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">RavenDB’s fully automated indexing is one of the keys to its extraordinary performance, allowing the acceleration of data retrieval by executing queries over pre-prepared indexes rather than ever-repeating cumbersome full scans.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #d45598" class="features-category__modal-icon icon-rolling-index-deployment c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Indexes </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #d45598" class="font-size-70 icon-rolling-index-deployment"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Rolling Index Deployment </h2> </div> <div class="entry-content"> <p>RavenDB’s fully automated indexing is one of the keys to its extraordinary performance, allowing the acceleration of data retrieval by executing queries over pre-prepared indexes rather than ever-repeating cumbersome full scans.</p> <p>But heavy-duty indexing operations may become a burden for the cluster if all nodes are busy indexing at the same time.</p> <ul class="wp-block-list"><li><strong>On Site</strong>, the toll concurrent indexing takes on nodes’ storage and CPU usage may decrease the cluster’s performance.</li><li><strong>On the Cloud</strong>, concurrent indexing may exhaust all nodes’ credits at the same time and leave too few or even none of the nodes available for service.</li></ul> <p>Starting with RavenDB 5.2 you can use Rolling Index Deployment to deploy indexing gradually, one node at a time. While one of the nodes surrenders its resources to indexing, the cluster may reassign its tasks to other nodes if needed.</p> <p>Keeping indexing as efficient as ever, rolling index deployment leaves the cluster at its peak performance and availability at all times.</p> <div id="acf-block-additional-info-block_62b428209125d" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 medium"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #303c4c"> <i class="icon-book-filled font-size-19 d-inline-block c-mr-only-2"></i> Read more </h4> <div class="additional-info__content font-size-13" style="background-color: #303c4c" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>You can read more about Rolling Index Deployment <a href="https://ravendb.net/docs/article-page/latest/csharp/indexes/rolling-index-deployment">here</a>.</li> </ul> </div> </div> </section> </div> </div> </div> </div> </div> </div> </div> </section> </section> <section id="counters" class="section-features c-pt-4 c-pb-5" style="background: #cf3a4c"> <h4 class="font-size-36 font-weight-bold text-uppercase c-pl-4 c-pb-5 c-mt-6 c-mt-lg-4">Counters</h4> <section class="features-category-section"> <div class="container"> <div class="row"> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/counters/distributed-counters" data-title="Distributed Counters" data-target-modal="feature-3199" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #ffbcc4" class="features-category-section__feature-icon icon-counter c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Distributed Counters </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Count fast and easy in a distributed manner</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-3199"> <div class="d-none"> <div class="js-features-category__meta-title">Distributed Counters | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">Distributed Counters are numeric data variables that can be added to your documents.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #f75e71" class="features-category__modal-icon icon-counter c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Counters </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #f75e71" class="font-size-70 icon-counter"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Distributed Counters </h2> </div> <div class="entry-content"> <p>Distributed Counters are numeric data variables that can be added to your documents. They are designed for scenarios like:</p> <ul class="wp-block-list"><li>High-throughput counting e.g. vote counting or any type of survey</li><li>Continuously record the number of visitors on an event page</li><li>Avoid having to update your entire document for a single numeric value change</li><li>Keep track of the number of times your document has been viewed or rated</li></ul> <div id="acf-block-additional-info-block_609e80ad2e43c" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 light"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> Example </h4> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-sql"> <code class=" language-sql"><span class="token keyword">using</span> <span class="token punctuation">(</span>var <span class="token keyword">session</span> <span class="token operator">=</span> store<span class="token punctuation">.</span>OpenSession<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> { <span class="token comment">// increment counter 'likes' of document 'users/1-A' by 10</span> <span class="token keyword">session</span><span class="token punctuation">.</span>CountersFor<span class="token punctuation">(</span><span class="token string">"users/1-A"</span><span class="token punctuation">)</span><span class="token punctuation">.</span>Increment<span class="token punctuation">(</span><span class="token string">"likes"</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">session</span><span class="token punctuation">.</span>SaveChanges<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> } </code> </pre> </div> </div> </section> </div> <div id="acf-block-additional-info-block_607813177ba0a" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 medium"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #303c4c"> <i class="icon-book-filled font-size-19 d-inline-block c-mr-only-2"></i> Read more </h4> <div class="additional-info__content font-size-13" style="background-color: #303c4c" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>You can read more about Counters <a href="https://ravendb.net/docs/article-page/latest/csharp/document-extensions/counters/overview">here</a>.</li> </ul> </div> </div> </section> </div> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <div class="features-category-section__feature d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #ffbcc4" class="features-category-section__feature-icon icon-counters-indexing c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> Counters Indexing </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <div class="features-category-section__feature d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #ffbcc4" class="features-category-section__feature-icon icon-counters-bulk-insert c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> Counters Bulk Insert </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </div> </div> </div> </div> </section> </section> <section id="extensions" class="section-features c-pt-4 c-pb-5" style="background-color: #22252b"> <h4 class="font-size-36 font-weight-bold text-uppercase c-pl-4 c-pb-5 c-mt-6 c-mt-lg-4">Extensions</h4> <section class="features-category-section"> <div class="container"> <div class="row"> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/extensions/revisions" data-title="Revisions" data-target-modal="feature-3202" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #f38861" class="features-category-section__feature-icon icon-revisions c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Revisions </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Manage the History of Changes to Your Documents.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-3202"> <div class="d-none"> <div class="js-features-category__meta-title">Revisions | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">Track the history of changes for a document. Compare each revision, or revert to a specific one.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #f38861" class="features-category__modal-icon icon-revisions c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Extensions </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #f38861" class="font-size-70 icon-revisions"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Revisions </h2> </div> <div class="entry-content"> <p>Track the history of changes for a document. Compare each revision, or revert to a specific one.</p> <p>You can revise your entire database to a specific point in time in a single click. You can also revise a specific collection or collections.</p> <div id="acf-block-additional-info-block_607814084f701" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 medium"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #303c4c"> <i class="icon-book-filled font-size-19 d-inline-block c-mr-only-2"></i> Read more </h4> <div class="additional-info__content font-size-13" style="background-color: #303c4c" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>Learn more about the revisions <a href="https://ravendb.net/docs/article-page/latest/csharp/server/extensions/revisions#configuration">configuration options</a>.</li> </ul> </div> </div> </section> </div> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <div class="features-category-section__feature d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #f38861" class="features-category-section__feature-icon icon-expiration c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Expiration </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Define document expiration dates and schedule cleanup intervals.</p> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <div class="features-category-section__feature d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #f38861" class="features-category-section__feature-icon icon-attachments c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Attachments </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Link binary data to your documents with ease.</p> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/extensions/subscriptions" data-title="Subscriptions" data-target-modal="feature-7741" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #f38861" class="features-category-section__feature-icon icon-subscriptions c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Subscriptions </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Data subscriptions can be used by multiple users.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-7741"> <div class="d-none"> <div class="js-features-category__meta-title">Subscriptions | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">Perform persistent live queries with high availability in mind.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #f38861" class="features-category__modal-icon icon-subscriptions c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Extensions </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #f38861" class="font-size-70 icon-subscriptions"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Subscriptions </h2> </div> <div class="entry-content"> <p>Perform persistent live queries with high availability in mind.<br>In order to use a DataSubscription, it should be defined first:</p> <div id="acf-block-additional-info-block_609e811aed94a" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 light"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> C# </h4> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-csharp"> <code class=" language-csharp">store<span class="token punctuation">.</span>Subscriptions<span class="token punctuation">.</span><span class="token function">Create</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">Raven<span class="token punctuation">.</span>Client<span class="token punctuation">.</span>Documents<span class="token punctuation">.</span>Subscriptions<span class="token punctuation">.</span>SubscriptionCreationOptions</span> <span class="token punctuation">{</span> Name <span class="token operator">=</span> <span class="token string">"Heavy Orders Tracking"</span><span class="token punctuation">,</span> Query <span class="token operator">=</span> <span class="token string">@" from Orders as o where o.Freight > 50 select { Freight: o.Freight, ShipTo: o.ShipTo, Employee: o.Employee, Products: o.Lines.map(x=>x.Product) }"</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code> </pre> </div> </div> </section> </div> <p>The subscription definition is being sent to the server and stored in the cluster.</p> <p>The SubscriptionWorker allows processing data on demand, and continue from the point it last stopped:<br>The worker will continue running until stopped by user or processing error.</p> <div id="acf-block-additional-info-block_609e813ded94c" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 light"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> C# </h4> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-csharp"> <code class=" language-csharp"><span class="token keyword">var</span> workerTask <span class="token operator">=</span> worker<span class="token punctuation">.</span><span class="token function">Run</span><span class="token punctuation">(</span><span class="token keyword">async</span> x <span class="token operator">=</span><span class="token operator">></span> <span class="token punctuation">{</span> <span class="token keyword">foreach</span> <span class="token punctuation">(</span><span class="token keyword">var</span> orderSummary <span class="token keyword">in</span> x<span class="token punctuation">.</span>Items<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">await</span> <span class="token function">NotifyLogisticsDepartmentAboutHeavyShipment</span><span class="token punctuation">(</span>orderSummary<span class="token punctuation">.</span>Result<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code> </pre> </div> </div> </section> </div> <div id="acf-block-heading-with-tooltip-and-content-block_61825e1a9a6a0" class="acf-block-heading-with-tooltip-and-content c-pt-0 c-pb-0"> <div class="acf-block-heading-with-tooltip-and-content__item d-flex align-items-start align-items-md-center flex-column flex-md-row"> <h4 class="acf-block-heading-with-tooltip-and-content__heading c-mt-4 c-mt-md-0 line-height-2 font-weight-extra-bold font-size-20">Concurrent Data Subscriptions</h4> </div> <div class="c-mt-3 entry-content"> <p><span style="font-weight: 400;">Sometimes, rather than simply executing a query and getting back results, you want to define the query and let RavenDB deliver the results on an ongoing basis. This is done using Data Subscriptions — ongoing cluster-managed operations in which user-defined “Subscription Workers” consume (receive and process) batches of data from the server. RavenDB guarantees the processing of these batches; if the subscription worker reports a processing error, the batch will be re-delivered until processing is successful.</span></p> <p><span style="font-weight: 400;">RavenDB 5.3 enhances this feature with Concurrent Data Subscriptions. Now you can have more than one Subscription Worker consuming documents from the same subscription. RavenDB Servers will provide multiple Workers with batches of documents to process, taking care to distribute different batches to different Workers, and ensuring all of them are under a similar load. Servers will always ensure that none of the data is left unprocessed.</span></p> <p><span style="font-weight: 400;">Depending on your needs, Workers can reside on the same machine or run on separate ones. As a result, you can now scale out your processing infrastructure and tremendously increase your capacity for processing documents arriving from subscriptions. </span></p> </div> </div> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/extensions/documents-compression" data-title="Documents Compression" data-target-modal="feature-3206" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #f38861" class="features-category-section__feature-icon icon-documents-compression c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Documents Compression </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Compress documents while storing them, using a continuously optimized compression model.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-3206"> <div class="d-none"> <div class="js-features-category__meta-title">Documents Compression | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">RavenDB introduces a new way of compressing documents more efficiently, without sacrificing the high performance and speed you’ve come to expect.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #f38861" class="features-category__modal-icon icon-documents-compression c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Extensions </small> <small style="color: #8a6d3b;"> ENTERPRISE LICENSE ONLY </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #f38861" class="font-size-70 icon-documents-compression"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Documents Compression </h2> </div> <div class="entry-content"> <p>With the massive amounts of information that modern applications are expected to handle, it’s important to be able to compress data into smaller sizes to save storage space. In most databases, this presents a tradeoff – the more efficiently data is compressed, the slower it becomes to store, retrieve, or modify it. RavenDB 5.0 introduces a new way of <strong>compressing documents more efficiently, without sacrificing the high performance and speed</strong> you’ve come to expect.</p> <p>In many use cases, the data stored in RavenDB consists of many documents with similar structures or other commonalities. A lot of space could be saved by compressing collections of similar documents as a single unit. But this would mean that to load a single document, the entire collection would have to be decompressed. To add, delete, or change a single document, the entire collection would have to be compressed again in a different way. Past versions of RavenDB offered ways of compressing the data within documents, but we found that compressing multiple documents simply wasn’t worth the performance cost.</p> <p>In RavenDB 5.0 we have introduced a solution to this dilemma by integrating the Zstd compression algorithm (Zstandard) first developed for Facebook. This algorithm is able to ‘train’ on a batch of documents and learn the commonalities between them, and then compress new documents individually, which makes it possible to decompress them individually as well.</p> <p>This new Documents Compression feature can be toggled for each document collection, as well as document revisions. By training on the first few documents in the collection, the Zstd algorithm generates a dictionary that it then applies to every new document. The algorithm monitors the compression ratio achieved for each document, and if it is not satisfactory, the algorithm goes back and re-trains on the most recently modified documents. After this, if the algorithm is able to compress the new document more efficiently, the dictionary is updated. In this way, the algorithm continuously adapts to the data you feed it.</p> <p>Using this new feature, we often see <strong>compression ratios of over 50%, with negligible costs to performance</strong>. In fact, because of the reduced I/O usage, we often see an overall increase in the speed the system is able to process and handle operations.</p> <div id="acf-block-additional-info-block_62b4286b43d67" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 medium"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #303c4c"> <i class="icon-book-filled font-size-19 d-inline-block c-mr-only-2"></i> Read more </h4> <div class="additional-info__content font-size-13" style="background-color: #303c4c" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>You can read more about Documents Compression <a href="https://ravendb.net/docs/article-page/latest/csharp/server/storage/documents-compression">here</a>.</li> </ul> </div> </div> </section> </div> </div> </div> </div> </div> </div> </div> </section> </section> <section id="clusters" class="section-features c-pt-4 c-pb-5" style="background: #d7892b"> <h4 class="font-size-36 font-weight-bold text-uppercase c-pl-4 c-pb-5 c-mt-6 c-mt-lg-4">Clusters</h4> <section class="features-category-section"> <div class="container"> <div class="row"> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/clusters/sharding" data-title="Sharding" data-target-modal="feature-11984" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #ffe9cf" class="features-category-section__feature-icon icon-sharding c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Sharding </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Splitting a single database across several servers</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-11984"> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #f0ae5e" class="features-category__modal-icon icon-sharding c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Clusters </small> <small style="color: #7bd85d;"> Enterprise license,<br>Developer license, <br>Community and Professional licenses </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #f0ae5e" class="font-size-70 icon-sharding"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Sharding </h2> </div> <div class="entry-content"> <p>As your database grows, you will inevitably reach a point in time when a dataset you operate on exceeds the capacity of a single machine. Database Sharding is one possible solution in this situation – splitting the database into several pieces and placing each one of those pieces on a separate machine.</p> <p>There are many subtle but important details you need to consider, even though this sounds like an easy solution to an unpleasant challenge.First, you are introducing change at the lowest level of your application, and now you may need to propagate these changes all the way up to the Data Layer of your application; this often requires a complete redesign of the data access code.</p> <p>Second, careful planning is needed – not all workloads are created equal, so you must carefully analyze and plan the sizing and positioning of the shards you will create. You do not want to overwhelm some of the servers while having others sitting idle most of the time.</p> <p>Finally, your new sharded setup must be not only an appropriate setup to support further growth in data volume and traffic – it also must not get harder to operate over time. With so many fine details and every project being unique, it is easy to make mistakes that would turn out to be hugely expensive in the future.</p> <p>When designing and implementing Sharding in RavenDB v6, we considered all these challenges. As a result, RavenDB can scale infinitely without sacrificing performance. Furthermore, we concentrated on the challenging part – developer experience and operational ease of use.</p> <p>Transitioning from your existing setup to a sharded one is as seamless as it can be – once you create a sharded database, aside from the fact that your data is split across multiple machines, you will notice no change in behavior. You can move your existing RavenDB-based system to a sharded environment without a single change. We made an extreme effort to keep Sharding implementation self-contained, preventing leakage of any implementation details into your data access layer.</p> <p>However, if you need more control, RavenDB also supports you by introducing Sharding by Prefix. This feature allows you to group related documents by common prefixes, giving you greater control over data placement and improving performance by minimizing roundtrips between shards.</p> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/clusters/high-availability" data-title="High Availability" data-target-modal="feature-3207" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #ffe9cf" class="features-category-section__feature-icon icon-high-availability2 c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> High Availability </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Expand beyond one node in a matter of minutes. Achieve high availability, load balancing, and failover with just a few clicks.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-3207"> <div class="d-none"> <div class="js-features-category__meta-title">High Availability | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">With RavenDB clustering is easy! In a matter of minutes, you can configure it without any expert knowledge using our GUI management studio.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #f0ae5e" class="features-category__modal-icon icon-high-availability2 c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Clusters </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #f0ae5e" class="font-size-70 icon-high-availability2"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> High Availability </h2> </div> <div class="entry-content"> <p>With RavenDB clustering is easy!</p> <p>In a matter of minutes, you can configure it without any expert knowledge using our GUI management studio.</p> <p>The RavenDB clustering is build on top of two layers:</p> <ul class="wp-block-list"><li>First, the <em>cluster layer</em> is managed by a consensus protocol called <em>Raft</em>. In <em>CAP</em> theorem it is <em>CP</em> (consistent and partition tolerant).</li><li>The second layer, the <em>database layer</em>, is <em>AP</em> (it is always available, even if there is a partition, and it’s eventually consistent) and is handled by a gossip protocol between the databases on different nodes, forming multi-master mesh and replicating data between each other.</li></ul> <p>RavenDB utilizes the different layers for different purposes. At the <em>cluster layer</em>, the consensus protocol <em>ensures</em> that operators have the peace of mind of knowing that their <em>commands are accepted and followed</em>. At the <em>database layer</em> you know that RavenDB will <em>never lose writes</em> and will <em>always keep your data safe.</em></p> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/clusters/cluster-wide-tasks-with-high-availability" data-title="Cluster-Wide Tasks with High Availability" data-target-modal="feature-3208" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #ffe9cf" class="features-category-section__feature-icon icon-cluster-wide-tasks c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Cluster-Wide Tasks with High Availability </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Schedule tasks among the cluster and let the other nodes take over the work if needed.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-3208"> <div class="d-none"> <div class="js-features-category__meta-title">Cluster-Wide Tasks with High Availability | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">Scheduling a backup, an ETL job, or any other ongoing process on just one node is not acceptable. If that node goes down for any reason, the show must go on.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #f0ae5e" class="features-category__modal-icon icon-cluster-wide-tasks c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Clusters </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS * </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #f0ae5e" class="font-size-70 icon-cluster-wide-tasks"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Cluster-Wide Tasks with High Availability </h2> </div> <div class="entry-content"> <p>Scheduling a backup, an <em>ETL</em> job, or any other ongoing process on just one node is not acceptable. If that node goes down for any reason, the show must go on. That’s is why RavenDB introduced <em>cluster-wide tasks, assigned to a node, but owned by the cluster</em>.</p> <p>In the case of a failure of the assigned node, the RavenDB cluster will re-assign the work to another node, <em>ensuring continuity of operations</em>.</p> <p>The following tasks can be created:</p> <ol class="wp-block-list"><li>External Replication</li><li>RavenDB ETL and SQL ETL</li><li>Backup</li><li>Subscription</li></ol> <p>With cluster-wide tasks or as we are calling them <em>Ongoing Tasks</em>, you have a <em>guarantee that only one cluster node is processing that job</em>. With the <em>high availability</em> in place, you have assurance that the task will <em>automatically switch to a new node if the old one is down</em>.</p> <div id="acf-block-additional-info-block_82b65fa93fd4838eba79b2abd9945969" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 light"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #484444"> <i class="icon-development font-size-19 d-inline-block c-mr-only-2"></i> Availability </h4> <div class="additional-info__content font-size-13" style="background-color: #484444" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li><em>Cluster-wide</em> Tasks are available in <em>all versions</em></li> <li><em>Highly Available Tasks</em> are available with <em>Enterprise</em> license</li> </ul> </div> </div> </section> </div> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/clusters/dynamic-database-distribution" data-title="Dynamic Database Distribution" data-target-modal="feature-3209" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #ffe9cf" class="features-category-section__feature-icon icon-dynamic-distribution c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Dynamic Database Distribution </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Ensure your data is safe and sound, residing on a given number of nodes.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-3209"> <div class="d-none"> <div class="js-features-category__meta-title">Dynamic Database Distribution | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">A cluster can assign a database to all the nodes in the cluster, or to just some of them. In a five node cluster, most databases will only reside on two or three of the nodes, since duplicating all information times five is usually excessive.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #f0ae5e" class="features-category__modal-icon icon-dynamic-distribution c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Clusters </small> <small style="color: #8a6d3b;"> ENTERPRISE ONLY </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #f0ae5e" class="font-size-70 icon-dynamic-distribution"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Dynamic Database Distribution </h2> </div> <div class="entry-content"> <p>A cluster can assign a database to all the nodes in the cluster, or to just some of them. In a five node cluster, most databases will only reside on two or three of the nodes, since duplicating all information times five is usually excessive.</p> <p>Instead, you’ll typically spread the databases with a replication factor of two or three on the various nodes. If a node goes down (hardware failure, for example), the cluster will note that and if it fails to come back up quickly enough, will take steps to ensure that the number of live active replicas of the database is maintained.</p> <p>The cluster will do that by adding another node in the cluster for the database, resulting in another copy of the data and ensuring that the configured number of replicas is maintained. When the failed node is brought up again, the cluster will determine whatever to keep the data on the old node or to use the new topology. Your operations team doesn’t have to be on their toes at all times, RavenDB is constantly monitoring and acting on your behalf within the boundaries set by your administrators.</p> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/clusters/operational-stability" data-title="Operational Stability" data-target-modal="feature-3210" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #ffe9cf" class="features-category-section__feature-icon icon-operational-stability c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Operational Stability </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Trust our experience and sleep tight.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-3210"> <div class="d-none"> <div class="js-features-category__meta-title">Operational Stability | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">Far from being a opaque system, RavenDB works very hard to externalize and make visible all the details about the system that your operations team needs, and is often deployed in a self managing option.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #f0ae5e" class="features-category__modal-icon icon-operational-stability c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Clusters </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #f0ae5e" class="font-size-70 icon-operational-stability"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Operational Stability </h2> </div> <div class="entry-content"> <p>Running a production database cluster can be a daunting task. There are a lot of knobs to turn, especially when you have co-dependent settings and options.</p> <p>Far from being a opaque system, RavenDB works very hard to externalize and make visible all the details about the system that your operations team needs, and is often deployed in a self managing option.</p> <p>Features such as automatic failover, dynamic distribution of tasks and databases, multi master writes means that your operations team can sleep in peace, knowing that if anything happens, they can get to it in the morning.</p> <p>RavenDB also continuously runs diagnostics and self checks. Each member of the cluster is verifying each other to ensure the health of the entire system. If anything troubling shows up, RavenDB will alert the administrator, and usually include the suggested fix.</p> <p>Tested in production for the past decade, RavenDB is a mature product requiring minimal guidance on day to day issues.</p> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/clusters/cluster-wide-transactions" data-title="Cluster-Wide Transactions" data-target-modal="feature-3211" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #ffe9cf" class="features-category-section__feature-icon icon-cluster-wide-transactions c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Cluster-Wide Transactions </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Extend the transactionality beyond a single node.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-3211"> <div class="d-none"> <div class="js-features-category__meta-title">Cluster-Wide Transactions | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">Combine documents with Compare Exchange values in a single transaction to favor consistency over availability and ensure that changes are going to be applied in an identical manner across the cluster even in the presence of failures and network partitions.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #f0ae5e" class="features-category__modal-icon icon-cluster-wide-transactions c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Clusters </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #f0ae5e" class="font-size-70 icon-cluster-wide-transactions"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Cluster-Wide Transactions </h2> </div> <div class="entry-content"> <p>Combine documents with Compare Exchange values in a single transaction to favor consistency over availability and ensure that changes are going to be applied in an identical manner across the cluster even in the presence of failures and network partitions.</p> <p>No major code change is required, simply open the session with the <code>TransactionMode</code> set to <code>ClusterWide</code> and you have a cluster-wide transaction.</p> <div id="acf-block-additional-info-block_609e8432cbc2c" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 light"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #374046"> <i class="icon-code font-size-19 d-inline-block c-mr-only-2"></i> Example </h4> <div class="additional-info__content font-size-13" style="background-color: #374046"> <div class="entry-content"> <pre class="language-language-sql"> <code class=" language-sql"><span class="token keyword">using</span> <span class="token punctuation">(</span>var <span class="token keyword">session</span> <span class="token operator">=</span> store<span class="token punctuation">.</span>OpenSession<span class="token punctuation">(</span>new SessionOptions { TransactionMode <span class="token operator">=</span> TransactionMode<span class="token punctuation">.</span>ClusterWide }<span class="token punctuation">)</span><span class="token punctuation">)</span> { var <span class="token keyword">user</span> <span class="token operator">=</span> new <span class="token keyword">User</span> { FirstName <span class="token operator">=</span> <span class="token string">"John"</span><span class="token punctuation">,</span> LastName <span class="token operator">=</span> <span class="token string">"Doe"</span><span class="token punctuation">,</span> Email <span class="token string">"johndoe@ravendb.net"</span> }<span class="token punctuation">;</span> <span class="token comment">// create cluster wide unique users per email.</span> <span class="token keyword">session</span><span class="token punctuation">.</span>Store<span class="token punctuation">(</span><span class="token keyword">user</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">session</span><span class="token punctuation">.</span>Advanced<span class="token punctuation">.</span>ClusterTransaction<span class="token punctuation">.</span>CreateCompareExchangeValue<span class="token punctuation">(</span><span class="token keyword">user</span><span class="token punctuation">.</span>Email<span class="token punctuation">,</span> <span class="token keyword">user</span><span class="token punctuation">.</span>Id<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">session</span><span class="token punctuation">.</span>SaveChanges<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> } </code> </pre> </div> </div> </section> </div> <div id="acf-block-additional-info-block_6078193227943" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 medium"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #303c4c"> <i class="icon-book-filled font-size-19 d-inline-block c-mr-only-2"></i> Read more </h4> <div class="additional-info__content font-size-13" style="background-color: #303c4c" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>You can read more about Cluster Transactions <a href="https://ravendb.net/docs/article-page/latest/csharp/server/clustering/cluster-transactions">here</a>.</li> </ul> </div> </div> </section> </div> </div> </div> </div> </div> </div> </div> </section> </section> <section id="replication" class="section-features c-pt-4 c-pb-5" style="background-color: #22252b"> <h4 class="font-size-36 font-weight-bold text-uppercase c-pl-4 c-pb-5 c-mt-6 c-mt-lg-4">Replication</h4> <section class="features-category-section"> <div class="container"> <div class="row"> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/replication/external-replication" data-title="External Replication" data-target-modal="feature-3212" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #edcd51" class="features-category-section__feature-icon icon-external-replication c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> External Replication </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Replicate your data to an external node or connect clusters together.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-3212"> <div class="d-none"> <div class="js-features-category__meta-title">External Replication | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">External Replication is a master-slave replication which continuously push the data to destination node in asynchronous manner whenever the data changes on the source node.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #edcd51" class="features-category__modal-icon icon-external-replication c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Replication </small> <small style="color: #8a6d3b;"> IMMEDIATE: PROFESIONAL AND ENTERPRISE / DELAYED: ENTERPRISE ONLY </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #edcd51" class="font-size-70 icon-external-replication"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> External Replication </h2> </div> <div class="entry-content"> <p>Do you need to have offsite replica of your data?<br>Have you decided to connect geo-distributed clusters together?<br>Need to run resource intensive calculations on a separated node?</p> <p>External Replication is a master-slave replication which continuously push the data to destination node in asynchronous manner whenever the data changes on the source node.</p> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/replication/hub-sink-replication" data-title="Hub-Sink Replication" data-target-modal="feature-3213" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #edcd51" class="features-category-section__feature-icon icon-pull-replication c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Hub-Sink Replication </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Synchronize with the master server </p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-3213"> <div class="d-none"> <div class="js-features-category__meta-title">Pull Replication | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">Pull Replication will provide a secured master-slave replication initiated by the slave side to reduce the networking configuration fatigue needed.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #edcd51" class="features-category__modal-icon icon-pull-replication c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Replication </small> <small style="color: #8a6d3b;"> SINK: PROFESIONAL AND ENTERPRISE / HUB: ENTERPRISE ONLY </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #edcd51" class="font-size-70 icon-pull-replication"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Hub-Sink Replication </h2> </div> <div class="entry-content"> <p>Does your solution involves many instances requiring data synchronization with the main server?</p> <p>Pull Replication will provide a secured master-slave replication initiated by the slave side to reduce the networking configuration fatigue needed.</p> <p>For this purpose, in order to deploy slave nodes, only a single definition on the master server is required. Allowing you to connect numerous of nodes in matter of minutes without the additional overhead.</p> <div id="acf-block-additional-info-block_4de6712c8533cb791ab5be0ccff19b33" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 medium"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #303c4c"> <i class="icon-book-filled font-size-19 d-inline-block c-mr-only-2"></i> Read more </h4> <div class="additional-info__content font-size-13" style="background-color: #303c4c" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>You can read more about Time Series <a href="https://ravendb.net/why-ravendb/hub-sink-replication" target="_blank" rel="noopener">here</a>.</li> </ul> </div> </div> </section> </div> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/replication/filtered-replication" data-title="Filtered Replication" data-target-modal="feature-3214" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #edcd51" class="features-category-section__feature-icon icon-filtered-replication c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Filtered Replication </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Replicate selected documents. Control databases read and write access to documents</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-3214"> <div class="d-none"> <div class="js-features-category__meta-title">Filtered Replication | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">Replication now allows you to configure both hub servers and sink servers to send and accept only certain documents. In other words, you can control which databases have read and write access to which documents.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #edcd51" class="features-category__modal-icon icon-filtered-replication c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Replication </small> <small style="color: #8a6d3b;"> ENTERPRISE ONLY </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #edcd51" class="font-size-70 icon-filtered-replication"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Filtered Replication </h2> </div> <div class="entry-content"> <p>Want to replicate documents, but not an entire database?<br>Do you have sensitive data that you need to limit access to?</p> <p>Replication now allows you to configure both hub servers and sink servers to send and accept only certain documents. In other words, you can control which databases have read and write access to which documents. These documents can be specified not just by their document ID, but also all document IDs that begin with some prefix.</p> <p>Imagine your application stores information for a hospital, and it has a central database and many other databases with limited access. Filtered Replication allows you to create a database for Dr. Alice Smith that has read access to this document in the central database:<br><code>doctors/Smith_A</code></p> <p>And all documents in the central database with IDs that have this prefix:<br><code>pharmacy/medicines/</code></p> <p>In addition, Dr. Smith’s database might have write access for all documents with this prefix:<br><code>prescriptions/Smith_A/</code></p> <p>This feature allows you to plan far in advance which data will be read, replicated, and modified by whom.</p> </div> </div> </div> </div> </div> </div> </section> </section> <section id="security" class="section-features c-pt-4 c-pb-5" style="background: #59aa3f"> <h4 class="font-size-36 font-weight-bold text-uppercase c-pl-4 c-pb-5 c-mt-6 c-mt-lg-4">Security</h4> <section class="features-category-section"> <div class="container"> <div class="row"> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/security/certificates" data-title="Certificates" data-target-modal="feature-3216" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #c7ffb6" class="features-category-section__feature-icon icon-certificates c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Certificates </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Manage authentication and authorization via X.509 certificates. Secure your connectivity with SSL and TLS 1.2.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-3216"> <div class="d-none"> <div class="js-features-category__meta-title">Certificates | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">The safety of your data is always our top priority. We strive to make sure that anything your users share with you on the assumption of privacy will remain private.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #7bd85d" class="features-category__modal-icon icon-certificates c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Security </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #7bd85d" class="font-size-70 icon-certificates"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Certificates </h2> </div> <div class="entry-content"> <p>The safety of your data is always our top priority. We strive to make sure that anything your users share with you on the assumption of privacy will remain private. This does not only mean protecting your data on the disk drive (read more about this in Encryption feature), but also in transferring it securely over the wire. To achieve this, we introduced the ability to utilize the <em>HTTPS</em> with <em>TLS 1.2</em> protocols using <em>X.509</em> certificates which grants you enterprise-level security for your data during transfers over the network.</p> <p>The certificates are also used to grant specific privileges to certificate holders allowing them to access only subsets of all databases on the server, or to execute operations that are allowed to one of the predefined roles (security clearances). All of this is configurable in a convenient way using our Management Studio GUI.</p> <p>Client certificates can have different levels of access for different databases: Admin, Read/Write, and Read-Only. Admin is the highest level and grants access to everything. Read/Write grants access to most things that relate to a database, but not to those that relate to the server. The next section deals with the Read-Only level.</p> <div id="acf-block-heading-with-tooltip-and-content-block_60cc9e6504794" class="acf-block-heading-with-tooltip-and-content c-pt-4 c-pb-4"> <div class="acf-block-heading-with-tooltip-and-content__item d-flex align-items-start align-items-md-center flex-column flex-md-row"> <h4 class="acf-block-heading-with-tooltip-and-content__heading c-mt-4 c-mt-md-0 line-height-2 font-weight-extra-bold font-size-20">Read-Only Certificates</h4> <p class="acf-block-heading-with-tooltip-and-content__label c-mt-2 c-mt-md-0 text-uppercase font-size-14 font-weight-light" style="color: #f0ae5e" > professional and enterprise </p> </div> <div class="c-mt-3 entry-content"> <p>Starting with version 5.2, we offer a new access level called Read-Only. For individual databases of your choice, you can allow users to read and query your data but not to write or change existing data. Users are prevented from creating <a href="https://ravendb.net/docs/article-page/latest/csharp/indexes/creating-and-deploying#static-indexes">static indexes</a>, changing the server’s <a href="https://ravendb.net/docs/article-page/latest/csharp/server/ongoing-tasks/general-info">ongoing tasks</a>, altering configurations, or making any other changes to the database, but they can still <a href="https://ravendb.net/docs/article-page/latest/Csharp/client-api/data-subscriptions/what-are-data-subscriptions">consume data subscriptions</a> and create <a href="https://ravendb.net/docs/article-page/latest/csharp/indexes/creating-and-deploying#auto-indexes">auto-indexes</a> by executing queries.</p> </div> </div> <div id="acf-block-heading-with-tooltip-and-content-block_60cc9f947e91c" class="acf-block-heading-with-tooltip-and-content c-pt-4 c-pb-4"> <div class="acf-block-heading-with-tooltip-and-content__item d-flex align-items-start align-items-md-center flex-column flex-md-row"> <h4 class="acf-block-heading-with-tooltip-and-content__heading c-mt-4 c-mt-md-0 line-height-2 font-weight-extra-bold font-size-20">Studio UI</h4> </div> <div class="c-mt-3 entry-content"> <p>Also in 5.2 we improved the Studio UI so that users always have a clear understanding of what their certificate does or doesn’t let them do in each database. For example: in read-only mode the buttons for parts of the Studio that the user can’t access are colored dark grey. You can see this in the example image below, which shows a part of a studio menu and lists three accessible areas and two inaccessible ones. Also, buttons that are normally for ‘editing’ become buttons for ‘viewing’, and so on.</p> <p>Below are two screenshots from the Studio. The first image shows the certificate view, where certificates are listed and new ones can be created. The second image shows what the studio looks like when it is accessed using the Read-Only level. Note how in both images, the sub-menu “Manage Server” is open along the left side of the screen, but in the second image most of the options are inaccessible (greyed out). At the bottom of both images, a grey pop-up indicates which certificate the browser is using to access the studio, and what its clearance and access levels are.</p> <p><a href="https://ravendb.net/wp-content/uploads/2021/04/certificates-1.png"><img loading="lazy" decoding="async" loading="lazy" class="alignnone wp-image-5934 size-full" src="https://ravendb.net/wp-content/uploads/2021/04/certificates-1.png" alt="Certificates" width="1920" height="951" srcset="https://ravendb.net/wp-content/uploads/2021/04/certificates-1.png 1920w, https://ravendb.net/wp-content/uploads/2021/04/certificates-1-1536x761.png 1536w, https://ravendb.net/wp-content/uploads/2021/04/certificates-1-342x169.png 342w, https://ravendb.net/wp-content/uploads/2021/04/certificates-1-684x339.png 684w, https://ravendb.net/wp-content/uploads/2021/04/certificates-1-22x11.png 22w, https://ravendb.net/wp-content/uploads/2021/04/certificates-1-44x22.png 44w, https://ravendb.net/wp-content/uploads/2021/04/certificates-1-62x31.png 62w, https://ravendb.net/wp-content/uploads/2021/04/certificates-1-124x61.png 124w, https://ravendb.net/wp-content/uploads/2021/04/certificates-1-238x118.png 238w, https://ravendb.net/wp-content/uploads/2021/04/certificates-1-476x236.png 476w, https://ravendb.net/wp-content/uploads/2021/04/certificates-1-101x50.png 101w, https://ravendb.net/wp-content/uploads/2021/04/certificates-1-202x100.png 202w, https://ravendb.net/wp-content/uploads/2021/04/certificates-1-570x282.png 570w, https://ravendb.net/wp-content/uploads/2021/04/certificates-1-1140x565.png 1140w, https://ravendb.net/wp-content/uploads/2021/04/certificates-1-420x208.png 420w, https://ravendb.net/wp-content/uploads/2021/04/certificates-1-840x416.png 840w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p> <p><a href="https://ravendb.net/wp-content/uploads/2021/04/certificates-2.png"><img loading="lazy" decoding="async" loading="lazy" class="alignnone wp-image-5938 size-full" src="https://ravendb.net/wp-content/uploads/2021/04/certificates-2.png" alt="Certificates" width="1920" height="872" srcset="https://ravendb.net/wp-content/uploads/2021/04/certificates-2.png 1920w, https://ravendb.net/wp-content/uploads/2021/04/certificates-2-1536x698.png 1536w, https://ravendb.net/wp-content/uploads/2021/04/certificates-2-342x155.png 342w, https://ravendb.net/wp-content/uploads/2021/04/certificates-2-684x311.png 684w, https://ravendb.net/wp-content/uploads/2021/04/certificates-2-22x10.png 22w, https://ravendb.net/wp-content/uploads/2021/04/certificates-2-44x20.png 44w, https://ravendb.net/wp-content/uploads/2021/04/certificates-2-62x28.png 62w, https://ravendb.net/wp-content/uploads/2021/04/certificates-2-124x56.png 124w, https://ravendb.net/wp-content/uploads/2021/04/certificates-2-260x118.png 260w, https://ravendb.net/wp-content/uploads/2021/04/certificates-2-520x236.png 520w, https://ravendb.net/wp-content/uploads/2021/04/certificates-2-110x50.png 110w, https://ravendb.net/wp-content/uploads/2021/04/certificates-2-220x100.png 220w, https://ravendb.net/wp-content/uploads/2021/04/certificates-2-570x259.png 570w, https://ravendb.net/wp-content/uploads/2021/04/certificates-2-1140x518.png 1140w, https://ravendb.net/wp-content/uploads/2021/04/certificates-2-420x191.png 420w, https://ravendb.net/wp-content/uploads/2021/04/certificates-2-840x382.png 840w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p> </div> </div> <div id="acf-block-additional-info-block_60781c0092659" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 medium"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #303c4c"> <i class="icon-book-filled font-size-19 d-inline-block c-mr-only-2"></i> Read more </h4> <div class="additional-info__content font-size-13" style="background-color: #303c4c" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>You can read more about Certificates <a href="https://ravendb.net/docs/article-page/latest/csharp/server/security/overview">here</a>.</li> </ul> </div> </div> </section> </div> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/security/encryption" data-title="Encryption" data-target-modal="feature-3218" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #c7ffb6" class="features-category-section__feature-icon icon-encryption c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Encryption </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Keep your data protected.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-3218"> <div class="d-none"> <div class="js-features-category__meta-title">Encryption | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">RavenDB comes with built-in encryption support that utilizes the modern XChaCha20-Poly1305 algorithm from a well-known and battle-tested encryption library called libsodium.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #7bd85d" class="features-category__modal-icon icon-encryption c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Security </small> <small style="color: #8a6d3b;"> ENTERPRISE ONLY </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #7bd85d" class="font-size-70 icon-encryption"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Encryption </h2> </div> <div class="entry-content"> <p>Our encryption techniques are among the best on the market.</p> <p>RavenDB comes with built-in encryption support that utilizes the modern <em>XChaCha20-Poly1305</em> algorithm from a well-known and battle-tested encryption library called <em>libsodium</em> giving you the best of both worlds: security and performance in one go.</p> <div id="acf-block-additional-info-block_60781c64cfb54" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 medium"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #303c4c"> <i class="icon-book-filled font-size-19 d-inline-block c-mr-only-2"></i> Read more </h4> <div class="additional-info__content font-size-13" style="background-color: #303c4c" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>You can read more about Encryption <a href="https://ravendb.net/docs/article-page/latest/csharp/server/security/encryption/encryption-at-rest">here</a>.</li> </ul> </div> </div> </section> </div> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <div class="features-category-section__feature d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #c7ffb6" class="features-category-section__feature-icon icon-encrypted-backup c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Encrypted Backup </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Store your backup safely</p> </div> </div> </div> </div> </div> </section> </section> <section id="monitoring" class="section-features c-pt-4 c-pb-5" style="background-color: #22252b"> <h4 class="font-size-36 font-weight-bold text-uppercase c-pl-4 c-pb-5 c-mt-6 c-mt-lg-4">Monitoring</h4> <section class="features-category-section"> <div class="container"> <div class="row"> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/monitoring/nlog" data-title="NLog" data-target-modal="feature-15378" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #44beaa" class="features-category-section__feature-icon icon-nlog c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> NLog </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-15378"> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #44beaa" class="features-category__modal-icon icon-nlog c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Monitoring </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #44beaa" class="font-size-70 icon-nlog"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> NLog </h2> </div> <div class="entry-content"> <p>Starting with RavenDB version 7, the logging mechanism has switched to NLog — a flexible, high-performance logging framework. NLog offers broad support for various logging targets and configurations, enabling you to send logs in real time to a wide array of third-party logging aggregators and monitoring platforms, such as Grafana Cloud via Grafana Loki. This integration lets you quickly detect and troubleshoot issues, visualize log data, and take advantage of the broader NLog ecosystem, which offers extensive configuration options and support for virtually any modern logging setup. This shift to NLog helps ensure a more powerful, scalable, and easily maintainable logging infrastructure for all RavenDB deployments.</p> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/monitoring/open-telemetry" data-title="Open Telemetry" data-target-modal="feature-14245" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <img width="150" height="150" src="https://ravendb.net/wp-content/uploads/2024/09/OpenTelemetryColored-1.svg" class="features-category-section__feature-icon--img c-mb-2" alt="" decoding="async" /> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> Open Telemetry </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-14245"> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Monitoring </small> <small style="color: #8a6d3b;"> ?ENTERPRISE ONLY? </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Open Telemetry </h2> </div> <div class="entry-content"> <p>RavenDB 6.2 introduces support for Open Telemetry, an open-source standard for collecting and analyzing metrics and traces. This allows integration with monitoring tools that support the standard, giving you detailed visibility into RavenDB’s performance. With Open Telemetry, you can track system behavior and optimize performance across distributed environments.</p> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/monitoring/cluster-dashboard" data-title="Cluster Dashboard" data-target-modal="feature-5805" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #44beaa" class="features-category-section__feature-icon icon-cluster-dashboard c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Cluster Dashboard </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">How then can you efficiently monitor all of its nodes at once and assess its operability as a whole? Our state-of-the-art solution to this puzzle is an adjustable Cluster Dashboard.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-5805"> <div class="d-none"> <div class="js-features-category__meta-title">Cluster Dashboard | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">RavenDB is a distributed database and is often deployed as a multi-node cluster. How then can you efficiently monitor all of its nodes at once and assess its operability as a whole? Our state-of-the-art solution to this puzzle is an adjustable Cluster Dashboard.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #44beaa" class="features-category__modal-icon icon-cluster-dashboard c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Monitoring </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #44beaa" class="font-size-70 icon-cluster-dashboard"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Cluster Dashboard </h2> </div> <div class="entry-content"> <p>When you open the Studio interface of a freshly installed RavenDB, your first view is that of the Server Dashboard, which conveniently gathers and presents the server’s configuration and live statistics. You can always return to this page to display, among other statistics, the server’s current CPU and memory usage, its indexing activities, and its traffic volume.</p> <p>But RavenDB is a distributed database and is often deployed as a multi-node cluster. How then can you efficiently monitor all of its nodes at once and assess its operability as a whole? Our state-of-the-art solution to this puzzle is an adjustable <em>Cluster Dashboard</em>. You can not only display data related to all cluster nodes in this view but also fully personalize it.</p> <p>Widgets containing cluster info and live statistics can be freely added, removed, relocated, and resized, so the dashboard would display just the information you want to see in just the way you want to see it.</p> <p>Since each widget displays statistics for all nodes, you can easily compare the operability of your nodes in various aspects. The traffic and CPU widgets, for example, provide you with an instant comparison of the traffic volume and CPU usage of the different nodes and clarify whether you need to take steps like distributing your workload differently or upgrading a node.</p> <figure class="wp-block-image size-large"><a href="https://ravendb.net/wp-content/uploads/2021/06/cluster-dashboard.png"><img loading="lazy" decoding="async" width="1647" height="816" src="https://ravendb.net/wp-content/uploads/2021/06/cluster-dashboard.png" alt="Cluster Dashboard" class="wp-image-5814" srcset="https://ravendb.net/wp-content/uploads/2021/06/cluster-dashboard.png 1647w, https://ravendb.net/wp-content/uploads/2021/06/cluster-dashboard-1536x761.png 1536w, https://ravendb.net/wp-content/uploads/2021/06/cluster-dashboard-342x169.png 342w, https://ravendb.net/wp-content/uploads/2021/06/cluster-dashboard-684x339.png 684w, https://ravendb.net/wp-content/uploads/2021/06/cluster-dashboard-22x11.png 22w, https://ravendb.net/wp-content/uploads/2021/06/cluster-dashboard-44x22.png 44w, https://ravendb.net/wp-content/uploads/2021/06/cluster-dashboard-62x31.png 62w, https://ravendb.net/wp-content/uploads/2021/06/cluster-dashboard-124x61.png 124w, https://ravendb.net/wp-content/uploads/2021/06/cluster-dashboard-238x118.png 238w, https://ravendb.net/wp-content/uploads/2021/06/cluster-dashboard-476x236.png 476w, https://ravendb.net/wp-content/uploads/2021/06/cluster-dashboard-101x50.png 101w, https://ravendb.net/wp-content/uploads/2021/06/cluster-dashboard-202x100.png 202w, https://ravendb.net/wp-content/uploads/2021/06/cluster-dashboard-570x282.png 570w, https://ravendb.net/wp-content/uploads/2021/06/cluster-dashboard-1140x565.png 1140w, https://ravendb.net/wp-content/uploads/2021/06/cluster-dashboard-420x208.png 420w, https://ravendb.net/wp-content/uploads/2021/06/cluster-dashboard-840x416.png 840w" sizes="(max-width: 1647px) 100vw, 1647px" /></a></figure> <div id="acf-block-additional-info-block_62b428aace4bd" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 medium"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #303c4c"> <i class="icon-book-filled font-size-19 d-inline-block c-mr-only-2"></i> Read more </h4> <div class="additional-info__content font-size-13" style="background-color: #303c4c" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>You can read more about Cluster Dashboard <a href="https://ravendb.net/docs/article-page/latest/csharp/studio/cluster/cluster-dashboard/cluster-dashboard-overview">here</a>.</li> </ul> </div> </div> </section> </div> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/monitoring/snmp-monitoring" data-title="SNMP Monitoring" data-target-modal="feature-3221" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #44beaa" class="features-category-section__feature-icon icon-snmp c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> SNMP Monitoring </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Connect Zabbix or your favorite monitoring tool via our built-in SNMP support.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-3221"> <div class="d-none"> <div class="js-features-category__meta-title">SNMP Monitoring | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">RavenDB comes with built-in support for SNMPv2 and SNMPv3, and exposes over 50 unique OIDs for you to take advantage of.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #44beaa" class="features-category__modal-icon icon-snmp c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Monitoring </small> <small style="color: #8a6d3b;"> ENTERPRISE ONLY </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #44beaa" class="font-size-70 icon-snmp"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> SNMP Monitoring </h2> </div> <div class="entry-content"> <p>When you have dozens of servers to maintain, you can hook-up one tool to monitor them all. RavenDB comes with built-in support for <em>SNMPv2</em> and <em>SNMPv3</em>, and exposes over 50 unique OIDs for you to take advantage of.</p> <div id="acf-block-additional-info-block_60781ebd1a8d8" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 medium"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #303c4c"> <i class="icon-book-filled font-size-19 d-inline-block c-mr-only-2"></i> Read more </h4> <div class="additional-info__content font-size-13" style="background-color: #303c4c" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>You can read more about SNMP Monitoring <a href="https://ravendb.net/docs/article-page/latest/csharp/server/administration/SNMP/snmp">here</a>.</li> </ul> </div> </div> </section> </div> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <div class="features-category-section__feature d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #44beaa" class="features-category-section__feature-icon icon-real-time-logging c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Real-time Logging </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Turn on logging on-the-fly, and view them in the Studio. No need to restart the Server!</p> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/monitoring/telegraf-and-grafana" data-title="Telegraf and Grafana" data-target-modal="feature-5815" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #44beaa" class="features-category-section__feature-icon icon-telegraf-and-grafana c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Telegraf and Grafana </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Plugin to Telegraf performance metrics and an option to display live graphs with Grafana.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-5815"> <div class="d-none"> <div class="js-features-category__meta-title">Telegraf and Grafana | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">RavenDB has its own plugin for Telegraf, a server agent that collects data and statistics from your database. The RavenDB plugin collects dozens of useful metrics about server behavior, clusters, indexing, and more.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #44beaa" class="features-category__modal-icon icon-telegraf-and-grafana c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Monitoring </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #44beaa" class="font-size-70 icon-telegraf-and-grafana"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Telegraf and Grafana </h2> </div> <div class="entry-content"> <p>RavenDB has its own plugin for Telegraf, a server agent that collects data and statistics from your database. The RavenDB plugin collects dozens of useful metrics about server behavior, clusters, indexing, and more. These include things like your server’s CPU usage, the progress of your indexes, or the chatter between the servers in your cluster.</p> <p>In addition, we’ve created a Grafana template for RavenDB. Grafana is a dashboard that displays data from Telegraf as graphs in real-time, giving you insight into the inner workings of your database in a convenient visual format.</p> <div id="acf-block-additional-info-block_62b428f212ae6" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 medium"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #303c4c"> <i class="icon-book-filled font-size-19 d-inline-block c-mr-only-2"></i> Read more </h4> <div class="additional-info__content font-size-13" style="background-color: #303c4c" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>You can read more about Telegraf and Grafana <a href="https://ravendb.net/docs/article-page/latest/csharp/server/administration/monitoring">here</a>.</li> </ul> </div> </div> </section> </div> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/monitoring/real-time-statistics" data-title="Real-Time Statistics" data-target-modal="feature-5816" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #44beaa" class="features-category-section__feature-icon icon-real-time-statistics c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Real-Time Statistics </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Built-in, live analysis of indexing and various ongoing tasks.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-5816"> <div class="d-none"> <div class="js-features-category__meta-title">Real-Time Statistics | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">Monitoring and evaluating RavenDB’s performance is made surprisingly easy with its Studio’s statistics pages. These graphical views allow you to draw and examine events in as many details as you like.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #44beaa" class="features-category__modal-icon icon-real-time-statistics c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Monitoring </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #44beaa" class="font-size-70 icon-real-time-statistics"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Real-Time Statistics </h2> </div> <div class="entry-content"> <p>Monitoring and evaluating RavenDB’s performance is made surprisingly easy with its Studio’s <em>statistics pages</em>. <em>These graphical views allow you to draw and examine</em> events in as many details as you like, from a general outline of tasks behavior over a given time period to the specifics of a chosen incident.</p> <ul class="wp-block-list"><li>The <strong>Indexing Performance view</strong> lets you examine chosen indexing operations.<br>This, for example, is a look at all indexing activities during a chosen period of time:</li></ul> <div class="wp-block-image"> <figure class="aligncenter size-large"><a href="https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-1.png"><img loading="lazy" decoding="async" width="1440" height="383" src="https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-1.png" alt="Real-Time Statistics Example " class="wp-image-5817" srcset="https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-1.png 1440w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-1-342x91.png 342w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-1-684x182.png 684w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-1-22x6.png 22w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-1-44x12.png 44w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-1-62x16.png 62w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-1-124x33.png 124w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-1-312x83.png 312w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-1-624x166.png 624w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-1-188x50.png 188w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-1-376x100.png 376w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-1-570x152.png 570w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-1-1140x303.png 1140w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-1-420x112.png 420w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-1-840x223.png 840w" sizes="(max-width: 1440px) 100vw, 1440px" /></a></figure></div> <p>While the screenshot below captures a more detailed look at the specific index <strong><em>Orders/Totals</em></strong> during a part of the time period chosen in the previous example:</p> <div class="wp-block-image"> <figure class="aligncenter size-large"><a href="https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-2.png"><img loading="lazy" decoding="async" width="1284" height="318" src="https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-2.png" alt="Real-Time Statistics Example" class="wp-image-5818" srcset="https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-2.png 1284w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-2-342x85.png 342w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-2-684x169.png 684w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-2-22x5.png 22w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-2-44x11.png 44w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-2-62x15.png 62w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-2-124x31.png 124w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-2-312x77.png 312w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-2-624x155.png 624w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-2-202x50.png 202w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-2-404x100.png 404w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-2-570x141.png 570w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-2-1140x282.png 1140w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-2-420x104.png 420w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-2-840x208.png 840w" sizes="(max-width: 1284px) 100vw, 1284px" /></a></figure></div> <p>Each bar represents a certain aspect of the indexing, e.g. Indexing, Mapping or Storage, and hovering over a selected bar reveals additional information.</p> <ul class="wp-block-list"><li>The <strong>Ongoing Tasks Stats view</strong> offers a graphic display of task-related operations over a continuous timeline. You can choose the tasks you want to observe, scroll the timeline for a history of their activity, zoom in to magnify a specific incident, or zoom out for a broader overview.<br>You can use the Stats View to monitor the conduct of <strong>Replication</strong> and <strong>ETL</strong> tasks, and starting with RavenDB 5.2, of <strong>Data Subscription</strong> tasks as well.</li></ul> <p>Let’s take a look at the monitoring of a data subscription task to see how helpful this view can be.</p> <p>A data subscription task is an ongoing operation in which the cluster sends document batches to a client in an orderly manner and waits for the consumption of each batch before sending the next. Documents transmitted this way may be, for example, orders sent to an accountant-client, making an otherwise tedious operation extremely easy to manage.</p> <p>The graphical representation of all communications between a subscription task and its clients provides you with a clear understanding of the task’s conduct at a glance and makes further inquiries much simpler. You can instantly spot activity peaks and lows on the timeline, magnify chosen time segments, and find whether a problem lies with the server or the client (e.g. by checking if the client had acknowledged batch reception before processing has halted).</p> <div class="wp-block-image"> <figure class="aligncenter size-large"><a href="https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-3.png"><img loading="lazy" decoding="async" width="1457" height="315" src="https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-3.png" alt="Real-Time Statistics Example" class="wp-image-5819" srcset="https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-3.png 1457w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-3-342x74.png 342w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-3-684x148.png 684w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-3-22x5.png 22w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-3-44x10.png 44w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-3-62x13.png 62w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-3-124x27.png 124w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-3-312x67.png 312w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-3-624x135.png 624w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-3-231x50.png 231w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-3-463x100.png 463w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-3-570x123.png 570w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-3-1140x246.png 1140w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-3-420x91.png 420w, https://ravendb.net/wp-content/uploads/2021/06/real-time-statistics-3-840x182.png 840w" sizes="(max-width: 1457px) 100vw, 1457px" /></a></figure></div> <p></p> <div id="acf-block-additional-info-block_62b429681b86e" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 medium"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #303c4c"> <i class="icon-book-filled font-size-19 d-inline-block c-mr-only-2"></i> Read more </h4> <div class="additional-info__content font-size-13" style="background-color: #303c4c" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>You can read more about Indexing Performance <a href="https://ravendb.net/docs/article-page/latest/csharp/studio/database/indexes/indexing-performance">here</a>.</li> <li>You can read more about Ongoing Tasks <a href="https://ravendb.net/docs/article-page/latest/csharp/studio/database/tasks/ongoing-tasks/general-info">here</a>.</li> </ul> </div> </div> </section> </div> </div> </div> </div> </div> </div> </div> </section> </section> <section id="administration" class="section-features c-pt-4 c-pb-5" style="background: #1c75ba"> <h4 class="font-size-36 font-weight-bold text-uppercase c-pl-4 c-pb-5 c-mt-6 c-mt-lg-4">Administration</h4> <section class="features-category-section"> <div class="container"> <div class="row"> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/administration/studio-omni-search" data-title="Studio Omni Search" data-target-modal="feature-14372" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <img width="150" height="150" src="https://ravendb.net/wp-content/uploads/2024/09/Omni-search-colored.svg" class="features-category-section__feature-icon--img c-mb-2" alt="" decoding="async" /> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> Studio Omni Search </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-14372"> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Administration </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Studio Omni Search </h2> </div> <div class="entry-content"> <p>Introducing Studio Omni Search in RavenDB Studio. This feature adds a convenient search bar at the top of your RavenDB Studio, allowing you to quickly search for studio and database features. Search results are displayed instantly; you can easily click on any result to navigate directly to the specific option you need. This enhancement significantly speeds up navigation and operations within RavenDB Studio, making your workflow more efficient and streamlined.</p> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/administration/single-file-deployment" data-title="Single file deployment" data-target-modal="feature-14367" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <img width="150" height="150" src="https://ravendb.net/wp-content/uploads/2024/09/single-file-deployment-colored.svg" class="features-category-section__feature-icon--img c-mb-2" alt="" decoding="async" /> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> Single file deployment </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-14367"> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Administration </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Single file deployment </h2> </div> <div class="entry-content"> <p>With the release of RavenDB 6.2, we’ve consolidated the Server folder, reducing its content from over 500 files and folders to just five. This significant reduction simplifies the management of your RavenDB installation, making upgrades much more manageable by minimizing the number of files you need to replace with each new version. Enjoy a more pleasant and hassle-free experience with RavenDB.</p> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/administration/periodic-backups" data-title="Periodic Backups" data-target-modal="feature-3223" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #a3d7ff" class="features-category-section__feature-icon icon-periodic-backup c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Periodic Backups </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Schedule automatic backups to different external destinations.</p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-3223"> <div class="d-none"> <div class="js-features-category__meta-title">Periodic Backups | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">RavenDB enables you to schedule full and/or incremental automatic backups, choose if those backups should be binary (slower creation, quicker restore) or JSON (quicker creation, slower restore), and choose at least one destination.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #2f9ef3" class="features-category__modal-icon icon-periodic-backup c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Administration </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS * </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #2f9ef3" class="font-size-70 icon-periodic-backup"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Periodic Backups </h2> </div> <div class="entry-content"> <p>RavenDB enables you to schedule full and/or incremental automatic backups, choose if those backups should be binary (slower creation, quicker restore) or JSON (quicker creation, slower restore), and choose at least one of the following destinations:</p> <ul class="wp-block-list"><li>Local disk drive</li><li>Amazon AWS S3</li><li>Amazon AWS Glacier</li><li>Microsoft Azure</li><li>FTP</li></ul> <div id="acf-block-additional-info-block_60781f84ff9ae" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 medium"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #303c4c"> <i class="icon-book-filled font-size-19 d-inline-block c-mr-only-2"></i> Read more </h4> <div class="additional-info__content font-size-13" style="background-color: #303c4c" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>You can read more about Periodic Backups <a href="https://ravendb.net/docs/article-page/latest/csharp/studio/database/tasks/backup-task">here</a>.</li> </ul> </div> </div> </section> </div> <div id="acf-block-additional-info-block_60781f98ff9af" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 light"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #484444"> <i class="icon-development font-size-19 d-inline-block c-mr-only-2"></i> Availability </h4> <div class="additional-info__content font-size-13" style="background-color: #484444" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>Local Disk Drive backups are available in <em>all versions</em></li> <li>Cloud & Remote backups are available with <em>Professional</em> and <em>Enterprise</em> licenses</li> <li>Binary (Snapshot) backups are available with <em>Enterprise</em> license</li> </ul> </div> </div> </section> </div> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <div class="features-category-section__feature d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #a3d7ff" class="features-category-section__feature-icon icon-ravencli c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> RavenCLI </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Use our built-in console commands to control your Server.</p> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <div class="features-category-section__feature d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #a3d7ff" class="features-category-section__feature-icon icon-jsconsole c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pb-1"> Administrator JS Console </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4">Issue JavaScript commands to modify your Server or database configuration on-the-fly without the need of any restarts.</p> </div> </div> </div> </div> </div> </section> </section> <section id="integration" class="section-features c-pt-4 c-pb-5" style="background-color: #22252b"> <h4 class="font-size-36 font-weight-bold text-uppercase c-pl-4 c-pb-5 c-mt-6 c-mt-lg-4">Integration</h4> <section class="features-category-section"> <div class="container"> <div class="row"> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/integration/snowflake-etl" data-title="Snowflake ETL" data-target-modal="feature-15376" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #6d78eb" class="features-category-section__feature-icon icon-snowflake-etl c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> Snowflake ETL </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-15376"> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #6d78eb" class="features-category__modal-icon icon-snowflake-etl c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Integration </small> <small style="color: #8a6d3b;"> ENTERPRISE </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #6d78eb" class="font-size-70 icon-snowflake-etl"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Snowflake ETL </h2> </div> <div class="entry-content"> <p>Snowflake is a powerful cloud data platform for handling high-capacity analytical workloads. With Snowflake, you can securely store vast amounts of data and process it at scale for deeper insights. This allows your organization to absorb traffic spikes or growing data demands without losing performance or integrity. Starting with version 7, RavenDB introduces a Snowflake ETL feature that can automatically transform your documents and load them directly into Snowflake. By seamlessly integrating RavenDB with Snowflake, you’ll keep your data pipeline efficient, always up to date, and ready for advanced analytics — all with minimal overhead.</p> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/integration/aws-sqs-etl" data-title="AWS SQS ETL" data-target-modal="feature-15377" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #6d78eb" class="features-category-section__feature-icon icon-aws-sqs-etl c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> AWS SQS ETL </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-15377"> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #6d78eb" class="features-category__modal-icon icon-aws-sqs-etl c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Integration </small> <small style="color: #8a6d3b;"> ENTERPRISE </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #6d78eb" class="font-size-70 icon-aws-sqs-etl"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> AWS SQS ETL </h2> </div> <div class="entry-content"> <p>Queues are a powerful mechanism for implementing high-capacity asynchronous processing. With AWS SQS, you can reliably store a high volume of messages as they arrive in your system and then process them at your application’s pace. This approach helps you handle traffic spikes without losing incoming data. Starting with version 7, RavenDB can transform documents and publish them directly to AWS SQS for further processing. This way, you get a powerful and reliable mechanism supported directly on a database level, freeing you from tedious implementation efforts.</p> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/integration/akka-net-persistence" data-title="Akka.NET Persistence" data-target-modal="feature-14369" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <img width="150" height="150" src="https://ravendb.net/wp-content/uploads/2024/09/akkaColored.svg" class="features-category-section__feature-icon--img c-mb-2" alt="" decoding="async" /> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> Akka.NET Persistence </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-14369"> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Integration </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Akka.NET Persistence </h2> </div> <div class="entry-content"> <p>We are excited that RavenDB now supports Akka.NET Persistence, enabling seamless integration with your Akka.NET applications. Akka.NET is a powerful toolkit for concurrency, parallelism, and clustering, and with Akka.Persistence you can create stateful actors with a durable state. RavenDB allows persistent actors to journal each new message with regular snapshots, ensuring reliable and performant state recovery on restart by replaying messages from the database. This integration enables you to incorporate RavenDB into your Actor Model projects. Check the latest versions of Persistence.RavenDB and Akka.Persistence.RavenDB.Hosting NuGet packages.</p> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/integration/azure-queue-storage-etl" data-title="Azure Queue Storage ETL" data-target-modal="feature-14241" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <img width="150" height="144" src="https://ravendb.net/wp-content/uploads/2024/09/Azure-colored.svg" class="features-category-section__feature-icon--img c-mb-2" alt="" decoding="async" /> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> Azure Queue Storage ETL </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-14241"> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Integration </small> <small style="color: #8a6d3b;"> ENTERPRISE ONLY </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Azure Queue Storage ETL </h2> </div> <div class="entry-content"> <p>Azure Queue Storage offers a simple and scalable public cloud messaging service for asynchronous communication between components. Starting with RavenDB 6.2, you can transform documents via JavaScript and push them directly into Azure Queue Storage, enabling seamless integration with Microsoft’s cloud. This ETL simplifies reliable message queuing and helps ensure smooth traffic handling and asynchronous processing in your distributed systems.</p> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/integration/rabbitmq-sink" data-title="RabbitMQ Sink" data-target-modal="feature-11986" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #6d78eb" class="features-category-section__feature-icon icon-rabbitmq-sink c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> RabbitMQ Sink </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-11986"> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #6d78eb" class="features-category__modal-icon icon-rabbitmq-sink c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Integration </small> <small style="color: #8a6d3b;"> ENTERPRISE ONLY </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #6d78eb" class="font-size-70 icon-rabbitmq-sink"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> RabbitMQ Sink </h2> </div> <div class="entry-content"> <p>Besides sending messages to other subsystems via RabbitMQ, your database can also consume them. With a low-code setup, RavenDB can dequeue messages from one or more RabbitMQ queues in a reliable and resilient way. These messages are transformed into documents and stored in a database. From there, you can use RavenDB features like Subscriptions and Indexing to react to these new documents.</p> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/integration/kafka-sink" data-title="Kafka Sink" data-target-modal="feature-11985" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #6d78eb" class="features-category-section__feature-icon icon-kafka-sink c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> Kafka Sink </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-11985"> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #6d78eb" class="features-category__modal-icon icon-kafka-sink c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Integration </small> <small style="color: #8a6d3b;"> ENTERPRISE ONLY </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #6d78eb" class="font-size-70 icon-kafka-sink"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Kafka Sink </h2> </div> <div class="entry-content"> <p>RavenDB can read and write events from one or more Kafka Topics and store them in collections. Once you set up Sink in a low-code manner, Kafka Topics will be streamed directly into your database. Such synchronization is automated, resilient, and reliable. This way, you can provide permanent storage for Kafka Events or leverage a powerful map/reduce indexing mechanism to aggregate events and provide new insights.</p> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/integration/ravendb-etl" data-title="RavenDB ETL" data-target-modal="feature-5821" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #6d78eb" class="features-category-section__feature-icon icon-ravendb-etl c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> RavenDB ETL </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-5821"> <div class="d-none"> <div class="js-features-category__meta-title">RavenDB ETL | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">RavenDB ETL allows you to load (write) selected data to a collection outside the database group. You can filter and modify the data using a transformation script.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #6d78eb" class="features-category__modal-icon icon-ravendb-etl c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Integration </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #6d78eb" class="font-size-70 icon-ravendb-etl"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> RavenDB ETL </h2> </div> <div class="entry-content"> <p>ETL (Extract, Transform, Load) is a robust automatic process that reads data from a RavenDB database, changes or rearranges it using JavaScript, and stores it in another database. RavenDB runs ETL operations as Ongoing Tasks that continuously react to updates in selected data, process the data using a user-configurable transformation script, and deliver it to a chosen destination.</p> <p>We offer multiple types of ETL processes: RavenDB ETL, SQL ETL, and OLAP ETL (provided starting with version 5.2).</p> <p><strong>RavenDB ETL</strong> allows you to load (write) selected data to a collection outside the database group. You can filter and modify the data using a transformation script, and gain for example:</p> <ul class="wp-block-list"><li>The construction of whatever data format you want to create.</li><li>Sharing of just a subset of your data for security or volume-reduction purposes.</li><li>Data distribution to various destinations without requiring a continuous replication process.</li><li>Aggregation of data sent from multiple sources.</li></ul> <p>The process includes three main stages:</p> <ul class="wp-block-list"><li><strong>Extraction</strong> of chosen documents from your database.<br>You can extract documents from a single collection or from multiple collections, and even all documents.</li><li><strong>Transformation</strong> of the extracted documents by user-defined JavaScript.<br>A RavenDB ETL task can even use multiple transformation scripts. The <em>extraction</em> and transformation phases are performed in an orderly and highly efficient manner using <em>batch processing</em>.</li><li><strong>Loading</strong> (writing) the transformed data to your chosen destination.</li></ul> <p>A RavenDB ETL task can be defined from your <a href="https://ravendb.net/docs/article-page/latest/All/server/ongoing-tasks/etl/raven">code</a> or using <a href="https://ravendb.net/docs/article-page/latest/All/studio/database/tasks/ongoing-tasks/ravendb-etl-task">Studio</a>.</p> <figure class="wp-block-image size-large"><a href="https://ravendb.net/wp-content/uploads/2021/06/ravendb-etl-1.png"><img loading="lazy" decoding="async" width="1601" height="637" src="https://ravendb.net/wp-content/uploads/2021/06/ravendb-etl-1.png" alt="RavenDB ETL" class="wp-image-5822" srcset="https://ravendb.net/wp-content/uploads/2021/06/ravendb-etl-1.png 1601w, https://ravendb.net/wp-content/uploads/2021/06/ravendb-etl-1-1536x611.png 1536w, https://ravendb.net/wp-content/uploads/2021/06/ravendb-etl-1-342x136.png 342w, https://ravendb.net/wp-content/uploads/2021/06/ravendb-etl-1-684x272.png 684w, https://ravendb.net/wp-content/uploads/2021/06/ravendb-etl-1-22x9.png 22w, https://ravendb.net/wp-content/uploads/2021/06/ravendb-etl-1-44x18.png 44w, https://ravendb.net/wp-content/uploads/2021/06/ravendb-etl-1-62x25.png 62w, https://ravendb.net/wp-content/uploads/2021/06/ravendb-etl-1-124x49.png 124w, https://ravendb.net/wp-content/uploads/2021/06/ravendb-etl-1-297x118.png 297w, https://ravendb.net/wp-content/uploads/2021/06/ravendb-etl-1-593x236.png 593w, https://ravendb.net/wp-content/uploads/2021/06/ravendb-etl-1-126x50.png 126w, https://ravendb.net/wp-content/uploads/2021/06/ravendb-etl-1-251x100.png 251w, https://ravendb.net/wp-content/uploads/2021/06/ravendb-etl-1-570x227.png 570w, https://ravendb.net/wp-content/uploads/2021/06/ravendb-etl-1-1140x454.png 1140w, https://ravendb.net/wp-content/uploads/2021/06/ravendb-etl-1-420x167.png 420w, https://ravendb.net/wp-content/uploads/2021/06/ravendb-etl-1-840x334.png 840w" sizes="(max-width: 1601px) 100vw, 1601px" /></a></figure> <div id="acf-block-additional-info-block_60cb1697c33b0" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 medium"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #303c4c"> <i class="icon-book-filled font-size-19 d-inline-block c-mr-only-2"></i> Read more </h4> <div class="additional-info__content font-size-13" style="background-color: #303c4c" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>You can read more about the basics of ETL <a href="https://ravendb.net/docs/article-page/latest/All/server/ongoing-tasks/etl/basics">here</a>.</li> </ul> </div> </div> </section> </div> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/integration/sql-etl" data-title="SQL ETL" data-target-modal="feature-5825" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #6d78eb" class="features-category-section__feature-icon icon-sql-etl c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> SQL ETL </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-5825"> <div class="d-none"> <div class="js-features-category__meta-title">SQL ETL | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">You can use SQL ETL to extract selected documents from your database, freely transform them using JavaScript, prepare the data for storage in a relational format and deliver it to one of popular databases.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #6d78eb" class="features-category__modal-icon icon-sql-etl c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Integration </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #6d78eb" class="font-size-70 icon-sql-etl"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> SQL ETL </h2> </div> <div class="entry-content"> <p>You can use SQL ETL to extract selected documents from your database, freely transform them using JavaScript, prepare the data for storage in a relational format and deliver it to one of these popular databases:</p> <ul class="wp-block-list"><li>Microsoft SQL Server</li><li>MySQL</li><li>PostgreSQL</li><li>Oracle</li></ul> <p>Being able to easily deliver documents to relational databases means that enterprises <em>do not need to replace operative systems</em> they grew to know and trust, nor to keep using them on the expanse of improved services.</p> <p>An accounting or a reporting system, for example, that uses an SQL Server and functions perfectly well, can keep on using it while importing data from RavenDB via ETL. The company will preserve its familiar interface and operability, and still enjoy RavenDB’s power and be introduced with an abundance of new services.</p> <p>You need to create the tables that would collect the transformed data in the destination database and define them for RavenDB so the SQL ETL task would be able to format the data appropriately.</p> <p>An SQL ETL task can be defined from your code or using Studio.</p> <figure class="wp-block-image size-large"><a href="https://ravendb.net/wp-content/uploads/2021/06/sql-etl-1.png"><img loading="lazy" decoding="async" width="1600" height="644" src="https://ravendb.net/wp-content/uploads/2021/06/sql-etl-1.png" alt="SQL ETL" class="wp-image-5826" srcset="https://ravendb.net/wp-content/uploads/2021/06/sql-etl-1.png 1600w, https://ravendb.net/wp-content/uploads/2021/06/sql-etl-1-1536x618.png 1536w, https://ravendb.net/wp-content/uploads/2021/06/sql-etl-1-342x138.png 342w, https://ravendb.net/wp-content/uploads/2021/06/sql-etl-1-684x275.png 684w, https://ravendb.net/wp-content/uploads/2021/06/sql-etl-1-22x9.png 22w, https://ravendb.net/wp-content/uploads/2021/06/sql-etl-1-44x18.png 44w, https://ravendb.net/wp-content/uploads/2021/06/sql-etl-1-62x25.png 62w, https://ravendb.net/wp-content/uploads/2021/06/sql-etl-1-124x50.png 124w, https://ravendb.net/wp-content/uploads/2021/06/sql-etl-1-293x118.png 293w, https://ravendb.net/wp-content/uploads/2021/06/sql-etl-1-586x236.png 586w, https://ravendb.net/wp-content/uploads/2021/06/sql-etl-1-248x100.png 248w, https://ravendb.net/wp-content/uploads/2021/06/sql-etl-1-570x229.png 570w, https://ravendb.net/wp-content/uploads/2021/06/sql-etl-1-1140x459.png 1140w, https://ravendb.net/wp-content/uploads/2021/06/sql-etl-1-420x169.png 420w, https://ravendb.net/wp-content/uploads/2021/06/sql-etl-1-840x338.png 840w" sizes="(max-width: 1600px) 100vw, 1600px" /></a></figure> <div id="acf-block-additional-info-block_60cb17b75ff7b" class="acf-block-additional-info c-mb-5"> <section class="additional-info c-my-5 medium"> <h4 class="additional-info__title font-size-14 c-p-only-2 w-auto line-height-1-5 text-uppercase font-weight-black d-inline-flex align-items-center" style="background-color: #303c4c"> <i class=" font-size-19 d-inline-block c-mr-only-2"></i> Read more </h4> <div class="additional-info__content font-size-13" style="background-color: #303c4c" c-p-only-2 c-p-md-only-3> <div class="entry-content c-p-5 c-p-md-4 c-p-lg-3"> <ul> <li>You can read more about SQL ETL <a href="https://ravendb.net/docs/article-page/latest/All/server/ongoing-tasks/etl/sql">here</a>.</li> </ul> </div> </div> </section> </div> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/integration/olap-etl" data-title="OLAP ETL" data-target-modal="feature-5827" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #6d78eb" class="features-category-section__feature-icon icon-olap-etl c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> OLAP ETL </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-5827"> <div class="d-none"> <div class="js-features-category__meta-title">OLAP ETL | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">With OLAP ETL, RavenDB gives you tools to structure and store your data so the analysis you need to perform over it is as fast and efficient as possible.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #6d78eb" class="features-category__modal-icon icon-olap-etl c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Integration </small> <small style="color: #8a6d3b;"> ENTERPRISE ONLY </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #6d78eb" class="font-size-70 icon-olap-etl"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> OLAP ETL </h2> </div> <div class="entry-content"> <p>OLAP (OnLine Analytical Processing) is a part of the ‘Business Intelligence’ practice of analyzing your data and system performance to find how they serve the needs of your enterprise, which frequently involves complex and heavy queries.</p> <p>With OLAP ETL, RavenDB gives you tools to structure and store your data so the analysis you need to perform over it is as fast and efficient as possible. OLAP ETL translates your data to the <a href="https://parquet.apache.org/docs/" class="external" rel="nofollow">Parquet format</a>, a column based storage format ideal for Big Data analysis.</p> <p>Your data can be delivered to destinations that are ideal for analytical purposes, including:</p> <ul class="wp-block-list"><li>An <a href="https://aws.amazon.com/s3/" class="external" rel="nofollow">Amazon S3</a> “data bucket”, where it can be queried using <a href="https://aws.amazon.com/athena/" class="external" rel="nofollow">Amazon Athena</a>. This is very convenient because Athena outputs its results to another S3 bucket.</li><li>An <a href="https://azure.microsoft.com/en-us/services/storage/blobs/" class="external" rel="nofollow">Azure Blob Storage</a>, where it can be queried using Azure Data Lake.</li></ul> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/integration/elasticsearch-etl" data-title="Elasticsearch ETL" data-target-modal="feature-7736" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #6d78eb" class="features-category-section__feature-icon icon-elastic-search-etl c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> Elasticsearch ETL </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-7736"> <div class="d-none"> <div class="js-features-category__meta-title">Elasticsearch ETL | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">If you’re using Elasticsearch as a solution for full-text search, you can now add RavenDB 5.3 to the list of applications populating your organization’s Elasticsearch database.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #6d78eb" class="features-category__modal-icon icon-elastic-search-etl c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Integration </small> <small style="color: #8a6d3b;"> ENTERPRISE ONLY </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #6d78eb" class="font-size-70 icon-elastic-search-etl"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Elasticsearch ETL </h2> </div> <div class="entry-content"> <p>Before adopting a new piece of technology you need to know that it will be a team player in your existing ecosystem. If you’re using Elasticsearch as a solution for full-text search, you can now add RavenDB 5.3 to the list of applications populating your organization’s Elasticsearch database. Through the powerful ETL (Extract, Transform, Load) mechanism, you can reshape RavenDB data before pushing it to Elasticsearch and avoid building time-expensive custom solutions. </p> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/integration/powerbi" data-title="Power BI" data-target-modal="feature-7738" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #6d78eb" class="features-category-section__feature-icon icon-power-bi c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> Power BI </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-7738"> <div class="d-none"> <div class="js-features-category__meta-title">Power BI | NoSQL Database Features - RavenDB</div> <div class="js-features-category__meta-desc">From version 5.3, RavenDB is supporting integration with Power BI: a powerful business intelligence service by Microsoft. This enables you to push your data to Power BI, where you can analyze, process, transform and remodel it.</div> </div> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #6d78eb" class="features-category__modal-icon icon-power-bi c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Integration </small> <small style="color: #8a6d3b;"> ENTERPRISE ONLY </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #6d78eb" class="font-size-70 icon-power-bi"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Power BI </h2> </div> <div class="entry-content"> <p>From version 5.3, RavenDB is supporting integration with Power BI: a powerful business intelligence service by Microsoft. This enables you to push your data to Power BI, where you can analyze, process, transform and remodel it. Using this functionality you can create intelligent reports and gain new insights into your data and business. Additionally, you can now run queries from your BI client to fetch any data from RavenDB that you want to process, analyze and report on. </p> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/integration/kafka-etl" data-title="Kafka ETL" data-target-modal="feature-10143" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #6d78eb" class="features-category-section__feature-icon icon-etl-kafka c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> Kafka ETL </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-10143"> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #6d78eb" class="features-category__modal-icon icon-etl-kafka c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Integration </small> <small style="color: #8a6d3b;"> ENTERPRISE ONLY </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #6d78eb" class="font-size-70 icon-etl-kafka"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Kafka ETL </h2> </div> <div class="entry-content"> <p>Kafka is one of the industry standards for systems integration. Its event stream is a backbone of distributed systems, providing a fast and reliable solution for building decoupled communication between heterogeneous components. RavenDB 5.4 introduces a powerful ETL that is able to reshape data before pushing it into Kafka’s topics.</p> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/integration/rabbitmq-etl" data-title="RabbitMQ ETL" data-target-modal="feature-10144" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #6d78eb" class="features-category-section__feature-icon icon-etl-rabbitmq c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> RabbitMQ ETL </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-10144"> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #6d78eb" class="features-category__modal-icon icon-etl-rabbitmq c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Integration </small> <small style="color: #8a6d3b;"> ENTERPRISE ONLY </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #6d78eb" class="font-size-70 icon-etl-rabbitmq"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> RabbitMQ ETL </h2> </div> <div class="entry-content"> <p>Queues are a powerful mechanism for implementing high-capacity asynchronous processing. With RabbitMQ you can reliably store a high volume of commands arriving at your system and then process them within the capacity of your application. This way, you will be able to sustain traffic spikes without losing any of the received data. Starting with version 5.4, RavenDB can transform documents and publish them as messages directly to RabbitMQ for further processing.</p> </div> </div> </div> </div> <div class="col-md-6 d-flex align-items-stretch"> <a href="/features/integration/grafana" data-title="Grafana" data-target-modal="feature-10145" class="features-category-section__feature js-modal-trigger d-flex align-items-center position-relative w-100 c-py-3 c-my-2"> <div class="c-px-6 c-px-md-5 c-px-lg-6"> <i style="color: #6d78eb" class="features-category-section__feature-icon icon-grafana c-pb-3"></i> </div> <div class="d-flex flex-column justify-content-center c-pr-6 c-pr-md-5"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> Grafana </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </a> </div> <div class="features-category__modal fill-the-whole-space js-modal position-fixed d-flex align-items-start justify-content-center" tabindex="-1" role="dialog" aria-hidden="true" id="feature-10145"> <div class="features-category__modal-body d-flex justify-content-between position-relative c-my-5 c-p-6 c-p-md-5"> <button class="features-category__modal-close js-modal-close position-absolute font-size-24 text-white line-height-1 font-weight-bold">×</button> <div class="features-category__modal-icon-wrapper d-none d-lg-block"> <i style="color: #6d78eb" class="features-category__modal-icon icon-grafana c-pb-3"></i> </div> <div class="features-category__modal-content"> <div class="features-category__modal-details d-flex flex-column flex-md-row justify-content-between text-uppercase font-size-14 text-silver c-pr-5"> <small> Integration </small> <small style="color: #7bd85d;"> AVAILABLE IN ALL VERSIONS </small> </div> <div class="d-flex c-py-4 c-py-lg-3 align-items-center"> <div class="c-mr-5 d-lg-none"> <i style="color: #6d78eb" class="font-size-70 icon-grafana"></i> </div> <h2 class="features-category__modal-title font-weight-bold c-py-3 c-py-lg-0"> Grafana </h2> </div> <div class="entry-content"> <p>From version 5.4, RavenDB is supporting integration with Grafana, a leading open-source solution for data visualization. Expose your database as a Grafana data source and create widgets and reports increasing the observability of your data.</p> </div> </div> </div> </div> </div> </div> </section> </section> <section id="migration" class="section-features c-pt-4 section-features--alt c-pb-9" style="background: #7a446d"> <h4 class="font-size-36 font-weight-bold text-uppercase c-pl-4 c-pb-5 c-mt-6 c-mt-lg-4">Migration</h4> <section class="features-category-section"> <div class="container"> <div class="row justify-content-center c-px-8"> <div class="col-6 col-md-3 d-flex align-items-stretch"> <div class="features-category-section__feature d-flex flex-column align-items-center position-relative w-100 c-py-3 c-my-2"> <img width="150" height="150" src="https://ravendb.net/wp-content/uploads/2021/03/mssql-150x150.png" class="features-category-section__feature-icon--img c-mb-2" alt="Migrate from MSSQL" decoding="async" srcset="https://ravendb.net/wp-content/uploads/2021/03/mssql-150x150.png 150w, https://ravendb.net/wp-content/uploads/2021/03/mssql-22x22.png 22w, https://ravendb.net/wp-content/uploads/2021/03/mssql-44x44.png 44w, https://ravendb.net/wp-content/uploads/2021/03/mssql-20x20.png 20w, https://ravendb.net/wp-content/uploads/2021/03/mssql-40x40.png 40w, https://ravendb.net/wp-content/uploads/2021/03/mssql-48x48.png 48w, https://ravendb.net/wp-content/uploads/2021/03/mssql-96x96.png 96w, https://ravendb.net/wp-content/uploads/2021/03/mssql-62x62.png 62w, https://ravendb.net/wp-content/uploads/2021/03/mssql-124x124.png 124w, https://ravendb.net/wp-content/uploads/2021/03/mssql-118x118.png 118w, https://ravendb.net/wp-content/uploads/2021/03/mssql-236x236.png 236w, https://ravendb.net/wp-content/uploads/2021/03/mssql-50x50.png 50w, https://ravendb.net/wp-content/uploads/2021/03/mssql-100x100.png 100w, https://ravendb.net/wp-content/uploads/2021/03/mssql.png 250w" sizes="(max-width: 150px) 100vw, 150px" /> <div class="d-flex flex-column justify-content-center"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> MSSQL </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </div> </div> <div class="col-6 col-md-3 d-flex align-items-stretch"> <div class="features-category-section__feature d-flex flex-column align-items-center position-relative w-100 c-py-3 c-my-2"> <img width="150" height="150" src="https://ravendb.net/wp-content/uploads/2021/04/mysql-150x150.png" class="features-category-section__feature-icon--img c-mb-2" alt="Migrate from MySQL" decoding="async" srcset="https://ravendb.net/wp-content/uploads/2021/04/mysql-150x150.png 150w, https://ravendb.net/wp-content/uploads/2021/04/mysql-22x22.png 22w, https://ravendb.net/wp-content/uploads/2021/04/mysql-44x44.png 44w, https://ravendb.net/wp-content/uploads/2021/04/mysql-20x20.png 20w, https://ravendb.net/wp-content/uploads/2021/04/mysql-40x40.png 40w, https://ravendb.net/wp-content/uploads/2021/04/mysql-48x48.png 48w, https://ravendb.net/wp-content/uploads/2021/04/mysql-96x96.png 96w, https://ravendb.net/wp-content/uploads/2021/04/mysql-62x62.png 62w, https://ravendb.net/wp-content/uploads/2021/04/mysql-124x124.png 124w, https://ravendb.net/wp-content/uploads/2021/04/mysql-118x118.png 118w, https://ravendb.net/wp-content/uploads/2021/04/mysql-236x236.png 236w, https://ravendb.net/wp-content/uploads/2021/04/mysql-50x50.png 50w, https://ravendb.net/wp-content/uploads/2021/04/mysql-100x100.png 100w, https://ravendb.net/wp-content/uploads/2021/04/mysql.png 250w" sizes="(max-width: 150px) 100vw, 150px" /> <div class="d-flex flex-column justify-content-center"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> MySQL </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </div> </div> <div class="col-6 col-md-3 d-flex align-items-stretch"> <div class="features-category-section__feature d-flex flex-column align-items-center position-relative w-100 c-py-3 c-my-2"> <img width="150" height="150" src="https://ravendb.net/wp-content/uploads/2021/04/mongodb-150x150.png" class="features-category-section__feature-icon--img c-mb-2" alt="Migrate from MongoDB" decoding="async" srcset="https://ravendb.net/wp-content/uploads/2021/04/mongodb-150x150.png 150w, https://ravendb.net/wp-content/uploads/2021/04/mongodb-22x22.png 22w, https://ravendb.net/wp-content/uploads/2021/04/mongodb-44x44.png 44w, https://ravendb.net/wp-content/uploads/2021/04/mongodb-20x20.png 20w, https://ravendb.net/wp-content/uploads/2021/04/mongodb-40x40.png 40w, https://ravendb.net/wp-content/uploads/2021/04/mongodb-48x48.png 48w, https://ravendb.net/wp-content/uploads/2021/04/mongodb-96x96.png 96w, https://ravendb.net/wp-content/uploads/2021/04/mongodb-62x62.png 62w, https://ravendb.net/wp-content/uploads/2021/04/mongodb-124x124.png 124w, https://ravendb.net/wp-content/uploads/2021/04/mongodb-118x118.png 118w, https://ravendb.net/wp-content/uploads/2021/04/mongodb-236x236.png 236w, https://ravendb.net/wp-content/uploads/2021/04/mongodb-50x50.png 50w, https://ravendb.net/wp-content/uploads/2021/04/mongodb-100x100.png 100w, https://ravendb.net/wp-content/uploads/2021/04/mongodb.png 250w" sizes="(max-width: 150px) 100vw, 150px" /> <div class="d-flex flex-column justify-content-center"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> MongoDB </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </div> </div> <div class="col-6 col-md-3 d-flex align-items-stretch"> <div class="features-category-section__feature d-flex flex-column align-items-center position-relative w-100 c-py-3 c-my-2"> <img width="150" height="150" src="https://ravendb.net/wp-content/uploads/2021/04/cosmosdb-150x150.png" class="features-category-section__feature-icon--img c-mb-2" alt="Migrate from CosmosD" decoding="async" srcset="https://ravendb.net/wp-content/uploads/2021/04/cosmosdb-150x150.png 150w, https://ravendb.net/wp-content/uploads/2021/04/cosmosdb-22x22.png 22w, https://ravendb.net/wp-content/uploads/2021/04/cosmosdb-44x44.png 44w, https://ravendb.net/wp-content/uploads/2021/04/cosmosdb-20x20.png 20w, https://ravendb.net/wp-content/uploads/2021/04/cosmosdb-40x40.png 40w, https://ravendb.net/wp-content/uploads/2021/04/cosmosdb-48x48.png 48w, https://ravendb.net/wp-content/uploads/2021/04/cosmosdb-96x96.png 96w, https://ravendb.net/wp-content/uploads/2021/04/cosmosdb-62x62.png 62w, https://ravendb.net/wp-content/uploads/2021/04/cosmosdb-124x124.png 124w, https://ravendb.net/wp-content/uploads/2021/04/cosmosdb-118x118.png 118w, https://ravendb.net/wp-content/uploads/2021/04/cosmosdb-236x236.png 236w, https://ravendb.net/wp-content/uploads/2021/04/cosmosdb-50x50.png 50w, https://ravendb.net/wp-content/uploads/2021/04/cosmosdb-100x100.png 100w, https://ravendb.net/wp-content/uploads/2021/04/cosmosdb.png 250w" sizes="(max-width: 150px) 100vw, 150px" /> <div class="d-flex flex-column justify-content-center"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> CosmosDB </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </div> </div> <div class="col-6 col-md-3 d-flex align-items-stretch"> <div class="features-category-section__feature d-flex flex-column align-items-center position-relative w-100 c-py-3 c-my-2"> <img width="150" height="150" src="https://ravendb.net/wp-content/uploads/2021/04/postgresql-150x150.png" class="features-category-section__feature-icon--img c-mb-2" alt="Migrate from PostgreSQL" decoding="async" srcset="https://ravendb.net/wp-content/uploads/2021/04/postgresql-150x150.png 150w, https://ravendb.net/wp-content/uploads/2021/04/postgresql-22x22.png 22w, https://ravendb.net/wp-content/uploads/2021/04/postgresql-44x44.png 44w, https://ravendb.net/wp-content/uploads/2021/04/postgresql-20x20.png 20w, https://ravendb.net/wp-content/uploads/2021/04/postgresql-40x40.png 40w, https://ravendb.net/wp-content/uploads/2021/04/postgresql-48x48.png 48w, https://ravendb.net/wp-content/uploads/2021/04/postgresql-96x96.png 96w, https://ravendb.net/wp-content/uploads/2021/04/postgresql-62x62.png 62w, https://ravendb.net/wp-content/uploads/2021/04/postgresql-124x124.png 124w, https://ravendb.net/wp-content/uploads/2021/04/postgresql-118x118.png 118w, https://ravendb.net/wp-content/uploads/2021/04/postgresql-236x236.png 236w, https://ravendb.net/wp-content/uploads/2021/04/postgresql-50x50.png 50w, https://ravendb.net/wp-content/uploads/2021/04/postgresql-100x100.png 100w, https://ravendb.net/wp-content/uploads/2021/04/postgresql.png 250w" sizes="(max-width: 150px) 100vw, 150px" /> <div class="d-flex flex-column justify-content-center"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> PostgreSQL </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </div> </div> <div class="col-6 col-md-3 d-flex align-items-stretch"> <div class="features-category-section__feature d-flex flex-column align-items-center position-relative w-100 c-py-3 c-my-2"> <img width="150" height="150" src="https://ravendb.net/wp-content/uploads/2021/04/oracle-150x150.png" class="features-category-section__feature-icon--img c-mb-2" alt="Migrate from Oracle" decoding="async" srcset="https://ravendb.net/wp-content/uploads/2021/04/oracle-150x150.png 150w, https://ravendb.net/wp-content/uploads/2021/04/oracle-22x22.png 22w, https://ravendb.net/wp-content/uploads/2021/04/oracle-44x44.png 44w, https://ravendb.net/wp-content/uploads/2021/04/oracle-20x20.png 20w, https://ravendb.net/wp-content/uploads/2021/04/oracle-40x40.png 40w, https://ravendb.net/wp-content/uploads/2021/04/oracle-48x48.png 48w, https://ravendb.net/wp-content/uploads/2021/04/oracle-96x96.png 96w, https://ravendb.net/wp-content/uploads/2021/04/oracle-62x62.png 62w, https://ravendb.net/wp-content/uploads/2021/04/oracle-124x124.png 124w, https://ravendb.net/wp-content/uploads/2021/04/oracle-118x118.png 118w, https://ravendb.net/wp-content/uploads/2021/04/oracle-236x236.png 236w, https://ravendb.net/wp-content/uploads/2021/04/oracle-50x50.png 50w, https://ravendb.net/wp-content/uploads/2021/04/oracle-100x100.png 100w, https://ravendb.net/wp-content/uploads/2021/04/oracle.png 250w" sizes="(max-width: 150px) 100vw, 150px" /> <div class="d-flex flex-column justify-content-center"> <strong class="features-category-section__heading line-height-1-2 c-pt-1"> Oracle </strong> <p class="features-category-section__feature-text line-height-1-7 font-size-14 c-pr-lg-4"></p> </div> </div> </div> </div> </div> </section> </section> </div> <div> <div class="container"> <div class="row"> <div class="col-12"> </div></div></div></div> <div data-wpr-lazyrender="1" id="acf-block-try-it" class="acf-block-try-it bg-secondary c-mt-md-only-6"> <div class="container" data-aos="fade"> <div class="row"> <div class="col-md-6 c-py-only-5 c-py-md-0"> <div class="acf-block-try-it__left-image-wrapper"> <img width="558" height="329" src="https://ravendb.net/wp-content/uploads/2021/02/tryit.png" class="adjustable-element d-block lazyload" alt="Try It" data-lazy="true" decoding="async" srcset="https://ravendb.net/wp-content/uploads/2021/02/tryit.png 558w, https://ravendb.net/wp-content/uploads/2021/02/tryit-342x202.png 342w, https://ravendb.net/wp-content/uploads/2021/02/tryit-22x13.png 22w, https://ravendb.net/wp-content/uploads/2021/02/tryit-44x26.png 44w, https://ravendb.net/wp-content/uploads/2021/02/tryit-62x37.png 62w, https://ravendb.net/wp-content/uploads/2021/02/tryit-124x73.png 124w, https://ravendb.net/wp-content/uploads/2021/02/tryit-200x118.png 200w, https://ravendb.net/wp-content/uploads/2021/02/tryit-400x236.png 400w, https://ravendb.net/wp-content/uploads/2021/02/tryit-85x50.png 85w, https://ravendb.net/wp-content/uploads/2021/02/tryit-170x100.png 170w, https://ravendb.net/wp-content/uploads/2021/02/tryit-420x248.png 420w, https://ravendb.net/wp-content/uploads/2021/02/tryit-555x327.png 555w" sizes="(max-width: 558px) 100vw, 558px" /> </div> </div> <div class="col-md-6"> <div class="c-pt-only-6 c-pb-only-6 c-pb-md-only-2"> <div class="button-group d-flex flex-wrap justify-content-between align-items-center button-group--margin-1"> <a href="/download" class="crunch-button crunch-button__full-background crunch-button__full-background--primary-color crunch-button__full-background--padding-medium crunch-button__full-background--font-size-14 crunch-button__full-background--hover-darken crunch-button__full-background--min-width-large crunch-button__full-background--font-weight-bold crunch-button--rounded" target="_self" > <span>TRY IT OUT</span> </a> <a href="/buy" class="crunch-button crunch-button__full-background crunch-button__full-background--green-color crunch-button__full-background--padding-medium crunch-button__full-background--font-size-14 crunch-button__full-background--hover-darken crunch-button__full-background--min-width-large crunch-button__full-background--font-weight-bold crunch-button--rounded" target="_self" > <span>GET FREE LICENSE</span> </a> </div> </div> <a href="/comparison" target="_self" class="d-block hover-opacity-0-75"> <img width="570" height="167" src="https://ravendb.net/wp-content/uploads/2021/02/compare-570x167.png" class="adjustable-element d-block lazyload" alt="Try It" data-lazy="true" decoding="async" srcset="https://ravendb.net/wp-content/uploads/2021/02/compare-570x167.png 570w, https://ravendb.net/wp-content/uploads/2021/02/compare-342x100.png 342w, https://ravendb.net/wp-content/uploads/2021/02/compare-684x201.png 684w, https://ravendb.net/wp-content/uploads/2021/02/compare-22x6.png 22w, https://ravendb.net/wp-content/uploads/2021/02/compare-44x13.png 44w, https://ravendb.net/wp-content/uploads/2021/02/compare-62x18.png 62w, https://ravendb.net/wp-content/uploads/2021/02/compare-124x36.png 124w, https://ravendb.net/wp-content/uploads/2021/02/compare-312x92.png 312w, https://ravendb.net/wp-content/uploads/2021/02/compare-624x183.png 624w, https://ravendb.net/wp-content/uploads/2021/02/compare-170x50.png 170w, https://ravendb.net/wp-content/uploads/2021/02/compare-340x100.png 340w, https://ravendb.net/wp-content/uploads/2021/02/compare-420x123.png 420w, https://ravendb.net/wp-content/uploads/2021/02/compare-840x247.png 840w, https://ravendb.net/wp-content/uploads/2021/02/compare.png 909w" sizes="(max-width: 570px) 100vw, 570px" /> </a> </div> </div> </div> </div> <div class="container"><div class="row"><div class="col-12 mx-auto"><div class="entry-content"> </div> </div> </div> </div> </main> <div class="js-main-footer-wrapper"> <footer class="main-footer c-pt-6 line-height-1-7"> <div class="container"> <div id="breadcrumbs" class="breadcrumbs d-block font-size-11 font-weight-bold text-uppercase c-mb-5"><span><span><a href="https://ravendb.net/"><i class="icon-raven"></i>Home</a></span></span></div> <div class="row"> <div class="col-lg-3"> <a href="https://ravendb.net/" class="footer-brand hover-opacity-0-75 c-mr-3 d-flex align-items-center justify-content-start"> <img src="https://ravendb.net/wp-content/uploads/2023/08/raven-logo-blue.svg" alt="RavenDB NoSQL Database Solutions" width="165" height="37" class="footer-brand__logo d-block adjustable-element" /> </a> <div class="d-block c-my-4"> <div class=""> <p><strong>HQ</strong></p> <p>9 Ahad Ha’Am St.<br /> Hadera 3820349<br /> Israel</p> </div> <div class="c-mt-3"> <p><strong>EUROPE</strong></p> <p>Gen. Jana Henryka Dąbrowskiego 6<br /> 87-100 Toruń<br /> Poland</p> </div> <div class="c-mt-3"> <p><strong>AMERICAS</strong></p> <p>157 Columbus Ave, 4th Floor<br /> New York, NY 10023<br /> USA</p> </div> </div> <div class="c-mt-3"> <ul class="social-icons list-unstyled d-flex flex-wrap font-size-18"> <li class="social-icons__item c-mt-2"> <a href="https://www.facebook.com/pages/RavenDB/265907650186374" title="Facebook" class="social-link d-flex align-items-center justify-content-center external" target="_blank" rel="nofollow"> <i class="icon-facebook"></i> </a> </li> <li class="social-icons__item c-mt-2"> <a href="https://twitter.com/ravendb" title="Icon X (Twitter)" class="social-link d-flex align-items-center justify-content-center external" target="_blank" rel="nofollow"> <i class="icon-x-twitter"></i> </a> </li> <li class="social-icons__item c-mt-2"> <a href="https://www.linkedin.com/company/hibernating-rhinos-ltd-/" title="LinkedIn" class="social-link d-flex align-items-center justify-content-center external" target="_blank" rel="nofollow"> <i class="icon-linkedin"></i> </a> </li> <li class="social-icons__item c-mt-2"> <a href="https://stackoverflow.com/tags/ravendb/info?jmp=footer" title="StackOverflow" class="social-link d-flex align-items-center justify-content-center external" target="_blank" rel="nofollow"> <i class="icon-stackoverflow"></i> </a> </li> <li class="social-icons__item social-icons__item--youtube"> <a href="https://www.youtube.com/user/HibernatingRhinos" title="Youtube" class="social-link d-flex align-items-center justify-content-center external" target="_blank" rel="nofollow"> <i class="icon-youtube"></i> </a> </li> <li class="social-icons__item c-mt-2"> <a href="https://www.instagram.com/ravendbnet" title="Instagram" class="social-link d-flex align-items-center justify-content-center external" target="_blank" rel="nofollow"> <i class="icon-instagram"></i> </a> </li> <li class="social-icons__item c-mt-2"> <a href="https://github.com/ravendb/ravendb" title="Github" class="social-link d-flex align-items-center justify-content-center external" target="_blank" rel="nofollow"> <i class="icon-github"></i> </a> </li> </ul> </div> </div> <div class="col-lg-9"> <div class="main-footer__menus"> <div class="row"> <div class="col-md-4 c-pl-lg-9"> <div class="row"> <div class="col-6 col-md-12"> <div id="nav_menu-2" class="widget widget_nav_menu"><span class="widget__title text-light-gray-secondary line-height-1-3 font-weight-bold d-block c-mb-4">Database</span ><div class="menu-footer-menu-column-1-menu-1-container"><ul id="menu-footer-menu-column-1-menu-1" class="menu"><li id="menu-item-10775" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-10775"><a href="https://ravendb.net"><span class="nav-link__text" data-color="">RavenDB</span></a></li> <li id="menu-item-10757" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10757"><a href="https://cloud.ravendb.net"><span class="nav-link__text" data-color="">RavenDB Cloud</span></a></li> <li id="menu-item-10758" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10758"><a href="https://ravendb.net/comparison"><span class="nav-link__text" data-color="">Comparison</span></a></li> <li id="menu-item-11262" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-11262"><a href="https://ravendb.net/performance"><span class="nav-link__text" data-color="">Performance Overview</span></a></li> <li id="menu-item-10759" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-10759"><a href="https://ravendb.net/buy"><span class="nav-link__text" data-color="">Pricing</span></a></li> <li id="menu-item-14530" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-14530"><a href="https://ravendb.net/download"><span class="nav-link__text" data-color="">Download</span></a></li> <li id="menu-item-10761" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10761"><a href="https://status.ravendb.net"><span class="nav-link__text" data-color="">Service status</span></a></li> </ul></div></div> </div> <div class="col-6 d-md-none" aria-hidden="true"> <div id="nav_menu-3" class="widget widget_nav_menu"><span class="widget__title text-light-gray-secondary line-height-1-3 font-weight-bold d-block c-mb-4">Resources</span><div class="menu-footer-menu-column-2-container"><ul id="menu-footer-menu-column-2" class="menu"><li id="menu-item-10762" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-10762"><a href="https://ravendb.net/why-ravendb"><span class="nav-link__text" data-color="">Why RavenDB</span></a></li> <li id="menu-item-10763" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item menu-item-10763"><a href="https://ravendb.net/features" aria-current="page"><span class="nav-link__text" data-color="">Features</span></a></li> <li id="menu-item-10764" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-10764"><a href="https://ravendb.net/try"><span class="nav-link__text" data-color="">Try</span></a></li> <li id="menu-item-10765" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10765"><a href="https://ravendb.net/docs"><span class="nav-link__text" data-color="">Documentation</span></a></li> <li id="menu-item-10766" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10766"><a href="https://ravendb.net/use-cases"><span class="nav-link__text" data-color="">Use cases</span></a></li> <li id="menu-item-10767" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10767"><a href="https://ravendb.net/webinars"><span class="nav-link__text" data-color="">Webinars</span></a></li> <li id="menu-item-10768" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10768"><a href="https://ravendb.net/news"><span class="nav-link__text" data-color="">News</span></a></li> </ul></div></div> </div> </div> </div> <div class="d-none d-md-block col-md-4 c-pl-lg-9"> <div id="nav_menu-3" class="widget widget_nav_menu"><span class="widget__title text-light-gray-secondary line-height-1-3 font-weight-bold d-block c-mb-4">Resources</span><div class="menu-footer-menu-column-2-container"><ul id="menu-footer-menu-column-3" class="menu"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-10762"><a href="https://ravendb.net/why-ravendb"><span class="nav-link__text" data-color="">Why RavenDB</span></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item menu-item-10763"><a href="https://ravendb.net/features" aria-current="page"><span class="nav-link__text" data-color="">Features</span></a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-10764"><a href="https://ravendb.net/try"><span class="nav-link__text" data-color="">Try</span></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10765"><a href="https://ravendb.net/docs"><span class="nav-link__text" data-color="">Documentation</span></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10766"><a href="https://ravendb.net/use-cases"><span class="nav-link__text" data-color="">Use cases</span></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10767"><a href="https://ravendb.net/webinars"><span class="nav-link__text" data-color="">Webinars</span></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10768"><a href="https://ravendb.net/news"><span class="nav-link__text" data-color="">News</span></a></li> </ul></div></div> </div> <div class="col-md-4 c-pl-lg-9 c-mt-5 c-mt-md-0"> <div class="row"> <div id="nav_menu-5" class="col-6 col-md-12 widget flex-shrink-1 widget_nav_menu"><span class="widget__title text-light-gray-secondary line-height-1-3 font-weight-bold d-block c-mb-4">Support</span><div class="menu-footer-menu-column-3-container"><ul id="menu-footer-menu-column-4" class="menu"><li id="menu-item-10769" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10769"><a href="https://ravendb.net/support"><span class="nav-link__text" data-color="">Support options</span></a></li> <li id="menu-item-10770" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10770"><a href="https://ravendb.net/community"><span class="nav-link__text" data-color="">Community</span></a></li> </ul></div></div><div id="nav_menu-8" class="col-6 col-md-12 widget flex-shrink-1 widget_nav_menu"><span class="widget__title text-light-gray-secondary line-height-1-3 font-weight-bold d-block c-mb-4">Company</span><div class="menu-footer-menu-column-6-menu-1-container"><ul id="menu-footer-menu-column-6-menu-1" class="menu"><li id="menu-item-10771" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-10771"><a href="https://ravendb.net/about"><span class="nav-link__text" data-color="">About us</span></a></li> <li id="menu-item-10772" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-10772"><a href="https://ravendb.net/contact"><span class="nav-link__text" data-color="">Contact</span></a></li> <li id="menu-item-10773" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10773"><a href="https://ravendb.net/events"><span class="nav-link__text" data-color="">Events</span></a></li> <li id="menu-item-16033" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-16033"><a href="https://ravendb.net/partners"><span class="nav-link__text" data-color="">Partners</span></a></li> </ul></div></div> </div> </div> </div> </div> </div> </div> <div class="main-footer__secondary-row font-size-12 text-gray-3 c-mt-lg-6 c-py-only-5 c-py-only-lg-4 lh-1-3 font-weight-bold"> <div class="row justify-content-lg-between"> <div class="main-footer__copy-wrapper col-lg-auto text-center d-flex flex-wrap justify-content-center"> <span class="main-footer__copy-item d-inline-block position-relative">© 2025 ravendb.net</span> <span class="main-footer__copy-item d-inline-block position-relative">NoSQL Database </span> <span class="main-footer__copy-item d-inline-block position-relative">All Rights Reserved</span> </div> <div class="col-lg-auto"> <div class="menu-bottom-footer-navigation-container"><ul class="main-footer__bottom-navigation d-flex flex-wrap justify-content-center list-unstyled p-0"><li id="menu-item-10755" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10755"><a href="https://ravendb.net/legal"><span class="nav-link__text" data-color="">Legal</span></a></li> <li id="menu-item-10754" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10754"><a href="https://ravendb.net/trust"><span class="nav-link__text" data-color="">Trust Center</span></a></li> <li>Proudly developed by Hibernating Rhinos</li></ul></div> </div> </div> </div> </div> </footer> <div class="live-demo-bar js-live-box-modal d-none d-md-block position-fixed"> <button class="live-demo-bar__btn-close js-live-box-close border-0 position-absolute text-center"><i class="icon-close live-demo-bar__icon-close"></i></button> <a href="https://ravendb.net/live-demo" class="live-demo-bar__clickable-content d-block"> <div class="live-demo-bar__img-container position-relative" style="background-image: url('https://ravendb.net/wp-content/uploads/2021/03/studio.svg')"> <img src="https://ravendb.net/wp-content/themes/ravendb/images/img__live-demo-foreground.png" alt="NoSQL Database Demo" class="live-demo-bar__img mw-100 h-auto d-block" /> </div> <h2 class="live-demo-bar__h2 position-relative font-weight-extra-bold z-index-1">Watch Live Demo</h2> <p class="live-demo-bar__description font-size-14">A customized presentation of RavenDB</p> <span class="live-demo-bar__request-demo-btn font-size-12 btn btn-primary btn-block text-uppercase">LIVE DEMO</span> </a> </div> <button class="btn-show-live-demo js-open-live-box text-white position-fixed border-0 font-size-13 d-none d-md-block font-weight-bold"><i class="icon-live-demo position-relative d-inline-block"></i> Watch Live Demo</button> </div> </div> <nav id="mobile-navigation" class="js-mobile-navigation"> <div id="subpanel" class="panel"> <a href="https://ravendb.net/" class="mm-menu__logo-wrapper mx-auto d-flex align-items-center justify-content-center c-mt-3 c-mb-4 hover-opacity-0-75"> <img src="https://ravendb.net/wp-content/uploads/2023/08/raven-logo-blue.svg" alt="RavenDB NoSQL Database" class="mm-menu__logo d-block adjustable-element" /> </a> <div class="mm-menu__search position-absolute bg-transparent"> <form class="search-form js-search-form d-flex position-fixed bg-transparent" method="get" action="https://ravendb.net/"> <input class="search-form__input m-0 border-0 bg-secondary text-silver font-size-14" type="text" name="s" placeholder="Search..." value="" required> <button class="search-form__submit d-flex align-items-center justify-content-center font-size-12 border-0" type="submit"> <svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg"> <title>Search icon</title> <path d="M14.8018 14L14.0088 14.8C13.7445 15.0667 13.348 15.0667 12.9515 14.8L10.044 11.8667C9.91188 11.7333 9.77973 11.6 9.77973 11.3333V10.9333C8.72246 11.7333 7.40087 12.2667 6.07928 12.2667C2.64316 12.2667 0 9.46667 0 6.13333C0 2.8 2.77532 0 6.07928 0C9.38325 0 12.1586 2.8 12.1586 6.13333C12.1586 7.6 11.63 8.93333 10.837 9.86667H11.3656C11.4978 9.86667 11.7621 10 11.8943 10.1333L14.8018 13.0667C15.0661 13.3333 15.0661 13.7333 14.8018 14ZM9.9119 6C9.9119 3.86667 8.19383 2.26667 6.21145 2.26667C4.09691 2.26667 2.51101 4 2.51101 6C2.51101 8.13333 4.22907 9.73333 6.21145 9.73333C8.19383 9.86667 9.9119 8.13333 9.9119 6Z" fill="#F0F4F6"/> </svg> </button> </form> <div class="text-light-gray-secondary d-flex justify-content-center"> <ul class="social-icons list-unstyled d-flex flex-wrap font-size-18 social-icons--xs"> <li class="social-icons__item c-mt-2"> <a href="https://www.facebook.com/pages/RavenDB/265907650186374" title="Facebook" class="social-link d-flex align-items-center justify-content-center external" target="_blank" rel="nofollow"> <i class="icon-facebook"></i> </a> </li> <li class="social-icons__item c-mt-2"> <a href="https://twitter.com/ravendb" title="Icon X (Twitter)" class="social-link d-flex align-items-center justify-content-center external" target="_blank" rel="nofollow"> <i class="icon-x-twitter"></i> </a> </li> <li class="social-icons__item c-mt-2"> <a href="https://www.linkedin.com/company/hibernating-rhinos-ltd-/" title="LinkedIn" class="social-link d-flex align-items-center justify-content-center external" target="_blank" rel="nofollow"> <i class="icon-linkedin"></i> </a> </li> <li class="social-icons__item c-mt-2"> <a href="https://stackoverflow.com/tags/ravendb/info?jmp=footer" title="StackOverflow" class="social-link d-flex align-items-center justify-content-center external" target="_blank" rel="nofollow"> <i class="icon-stackoverflow"></i> </a> </li> <li class="social-icons__item social-icons__item--youtube"> <a href="https://www.youtube.com/user/HibernatingRhinos" title="Youtube" class="social-link d-flex align-items-center justify-content-center external" target="_blank" rel="nofollow"> <i class="icon-youtube"></i> </a> </li> <li class="social-icons__item c-mt-2"> <a href="https://www.instagram.com/ravendbnet" title="Instagram" class="social-link d-flex align-items-center justify-content-center external" target="_blank" rel="nofollow"> <i class="icon-instagram"></i> </a> </li> <li class="social-icons__item c-mt-2"> <a href="https://github.com/ravendb/ravendb" title="Github" class="social-link d-flex align-items-center justify-content-center external" target="_blank" rel="nofollow"> <i class="icon-github"></i> </a> </li> </ul> </div> </div> <div class="d-md-none c-ml-8 c-pt-3"> <form class="search-form js-search-form d-flex position-fixed" method="get" action="https://ravendb.net/"> <input class="search-form__input m-0 border-0 bg-secondary text-silver font-size-14" type="text" name="s" placeholder="Type what you’re looking for..." value="" required> <button class="search-form__submit search-form__submit--full line-height-1-2 d-flex align-items-center justify-content-center font-size-12 border-0 bg-light-red" type="submit"> <span class="search-form__text d-inline-block">Search</span> <svg class="search-form__arrow position-absolute" width="10" height="7" viewBox="0 0 10 7" fill="none" xmlns="http://www.w3.org/2000/svg"> <title>Arrow icon</title> <path d="M0.56723 2.84288H7.77356L6.09547 1.11178C6.04259 1.05742 6.00063 0.992818 5.972 0.921691C5.94337 0.850563 5.92864 0.774305 5.92864 0.69729C5.92864 0.620274 5.94337 0.544016 5.972 0.472889C6.00063 0.401761 6.04259 0.337163 6.09547 0.2828L6.20419 0.170644C6.25689 0.116091 6.31951 0.0728068 6.38846 0.0432725C6.45741 0.0137382 6.53133 -0.00146484 6.60599 -0.00146484C6.68065 -0.00146484 6.75457 0.0137382 6.82352 0.0432725C6.89247 0.0728068 6.95509 0.116091 7.00779 0.170644L9.844 3.09645C9.89688 3.15082 9.93884 3.21542 9.96747 3.28654C9.9961 3.35767 10.0108 3.43393 10.0108 3.51094C10.0108 3.58796 9.9961 3.66422 9.96747 3.73534C9.93884 3.80647 9.89688 3.87107 9.844 3.92543L7.00779 6.85124C6.95509 6.9058 6.89247 6.94908 6.82352 6.97861C6.75457 7.00815 6.68065 7.02335 6.60599 7.02335C6.53133 7.02335 6.45741 7.00815 6.38846 6.97861C6.31951 6.94908 6.25689 6.9058 6.20419 6.85124L6.09547 6.73909C6.04259 6.68472 6.00063 6.62013 5.972 6.549C5.94337 6.47787 5.92864 6.40161 5.92864 6.3246C5.92864 6.24758 5.94337 6.17132 5.972 6.1002C6.00063 6.02907 6.04259 5.96447 6.09547 5.91011L7.77356 4.179H0.56723C0.492651 4.17933 0.418749 4.16441 0.349787 4.13512C0.280825 4.10582 0.218168 4.06273 0.165433 4.00833C0.112697 3.95393 0.0709261 3.8893 0.0425303 3.81815C0.0141345 3.74701 -0.00032405 3.67078 -1.13465e-05 3.59384V3.45243C-0.00353884 3.37347 0.00854124 3.2946 0.0354944 3.22061C0.0624475 3.14662 0.10371 3.07906 0.156772 3.02204C0.209834 2.96503 0.273585 2.91974 0.344148 2.88894C0.414712 2.85814 0.490611 2.84247 0.56723 2.84288Z" fill="#F0F4F6"/> </svg> </button> <i class="search-form__icon position-absolute font-size-17 text-silver icon icon-search"></i> </form> </div> <ul class="navbar-nav position-relative single-transition font-weight-medium mobile-navigation"> <li class="menu-item menu-item--main dropdown nav-link--highlighted"> <a href="#" class="nav-link nav-link--disabled">Getting Started</a> <div class="sub-menu overflow-auto"> <div class="c-px-only-5 c-py-5"> <div class="dropdown-menu__column-inner dropdown-menu__column-inner--products-column dropdown-with-products dropdown-with-products--mobile d-flex flex-column c-px-1"> <div class="dropdown-with-products__item dropdown-with-products__item--mobile w-100"> <div class="d-flex align-items-center"> <figure class="c-mr-5"><img width="18" height="30" src="https://ravendb.net/wp-content/uploads/2024/01/Vector.svg" class="attachment-full size-full" alt="" decoding="async" /></figure> <div class="d-flex flex-column"> <h2 class="dropdown-with-products__mobile-title d-block font-weight-bold" style="color: #388ee9" > RavenDB </h2> <p class="dropdown-with-products__description font-size-12 mh-100" style="color: #ACADBF" > Modern Document Database </p> </div> </div> <a class="dropdown-with-products__mobile-btn rounded-pill dropdown-menu__button hover-opacity-0-75 text-secondary d-flex align-items-center justify-content-center w-100 c-mt-2 font-size-12 font-weight-bold text-uppercase c-mt-5 w-100 mw-100" href="https://ravendb.net/download" target="" style="background-color: #388ee9; border-color: #388ee9" > Download </a> </div> <div class="dropdown-with-products__item dropdown-with-products__item--mobile w-100"> <div class="d-flex align-items-center"> <figure class="c-mr-5"><img width="28" height="20" src="https://ravendb.net/wp-content/uploads/2024/01/Vector1.svg" class="attachment-full size-full" alt="" decoding="async" /></figure> <div class="d-flex flex-column"> <h2 class="dropdown-with-products__mobile-title d-block font-weight-bold" style="color: #37c4ac" > RavenDB Cloud </h2> <p class="dropdown-with-products__description font-size-12 mh-100" style="color: #ACADBF" > Database as a Service </p> </div> </div> <a class="dropdown-with-products__mobile-btn rounded-pill dropdown-menu__button hover-opacity-0-75 text-secondary d-flex align-items-center justify-content-center w-100 c-mt-2 font-size-12 font-weight-bold text-uppercase c-mt-5 w-100 mw-100" href="https://cloud.ravendb.net" target="" style="background-color: #37c4ac; border-color: #37c4ac" > Start Free </a> </div> <div class="dropdown-with-products__item dropdown-with-products__item--mobile w-100"> <div class="d-flex align-items-center"> <figure class="c-mr-5"><img width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/01/Icon-set.svg" class="attachment-full size-full" alt="" decoding="async" /></figure> <div class="d-flex flex-column"> <h2 class="dropdown-with-products__mobile-title d-block font-weight-bold" style="color: #f38861" > Try </h2> <p class="dropdown-with-products__description font-size-12 mh-100" style="color: #ACADBF" > Interactive Demos and Playground Server </p> </div> </div> <a class="dropdown-with-products__mobile-btn rounded-pill dropdown-menu__button hover-opacity-0-75 text-secondary d-flex align-items-center justify-content-center w-100 c-mt-2 font-size-12 font-weight-bold text-uppercase c-mt-5 w-100 mw-100" href="https://ravendb.net/try" target="" style="background-color: #f38861; border-color: #f38861" > Try </a> </div> </div> </div> </div> </li> <li class="menu-item menu-item--main dropdown"> <a href="#" class="nav-link nav-link--disabled">For Developers</a> <div class="sub-menu overflow-auto"> <div class="c-px-only-5 c-py-5 bg-secondary"> <div class="dropdown-menu__column-inner dropdown-menu__column-inner--vertical-links dropdown-with-vertical-links dropdown-with-vertical-links--mobile c-p-3 w-100"> <div class="d-flex flex-column text-center"> <img class="dropdown-with-vertical-links__img" src="https://ravendb.net/wp-content/uploads/2024/01/Layer_1-2.svg" alt="" /> <h4 class="dropdown-with-vertical-links__mobile-title d-block font-size-14" style="color: #C3C3CF"> Experience interactive demos and playground server </h4> <a class="dropdown-with-vertical-links__mobile-button rounded-pill border-0 hover-opacity-0-75 text-secondary align-items-center justify-content-center w-100 font-size-12 font-weight-bold text-uppercase" style="background-color: #f38861; border-color: #f38861" href="https://ravendb.net/try" target="" > <figure class="text-center d-flex align-items-center justify-content-center"> <img width="21" height="22" src="https://ravendb.net/wp-content/uploads/2024/01/222.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <span> Try now </span> </a> </div> </div> </div> <div class="c-px-only-5 c-py-5"> <div class="dropdown-menu__column-inner dropdown-menu__column-inner--links-column-assets dropdown-with-link-assets dropdown-with-link-assets--mobile c-px-1 d-flex flex-column"> <div> <!--Heading--> <span class="dropdown-with-link-assets__title c-mb-4 d-block font-size-16 text-uppercase"> Product </span> <!--Repeater--> <ul> <li class="dropdown-with-link-assets__mobile-list-item dropdown-with-link-assets__mobile-list-item--with-icon"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/download"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/06/onpremise-brand.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #388ee9"> Download </h3> </div> </a> </li> <li class="dropdown-with-link-assets__mobile-list-item dropdown-with-link-assets__mobile-list-item--with-icon"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/cloud"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/06/cloud-brand.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #37c4ac"> RavenDB Cloud </h3> </div> </a> </li> <li class="dropdown-with-link-assets__mobile-list-item dropdown-with-link-assets__mobile-list-item--with-icon"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/features"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/01/11.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Features </h3> </div> </a> </li> <li class="dropdown-with-link-assets__mobile-list-item dropdown-with-link-assets__mobile-list-item--with-icon"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/performance"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/01/22.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Performance </h3> </div> </a> </li> <li class="dropdown-with-link-assets__mobile-list-item dropdown-with-link-assets__mobile-list-item--with-icon"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/comparison"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/01/33.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Comparison </h3> </div> </a> </li> <li class="dropdown-with-link-assets__mobile-list-item dropdown-with-link-assets__mobile-list-item--with-icon"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/ravendb-vs-mongodb"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/11/MongoDB-white-logo.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> RavenDB vs MongoDB </h3> </div> </a> </li> <li class="dropdown-with-link-assets__mobile-list-item dropdown-with-link-assets__mobile-list-item--with-icon"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/why-ravendb/whats-new"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/01/44.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> What’s New </h3> </div> </a> </li> </ul> </div> <div> <!--Heading--> <span class="dropdown-with-link-assets__title c-mb-4 d-block font-size-16 text-uppercase"> Documentation </span> <!--Repeater--> <ul> <li class="dropdown-with-link-assets__mobile-list-item dropdown-with-link-assets__mobile-list-item--with-icon"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/docs"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/06/docs-white.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #f0f1f6"> RavenDB Docs </h3> </div> </a> </li> <li class="dropdown-with-link-assets__mobile-list-item dropdown-with-link-assets__mobile-list-item--with-icon"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/docs/article-page/latest/csharp/cloud/cloud-overview"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/06/cloud-white.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #f0f1f6"> RavenDB Cloud Docs </h3> </div> </a> </li> <li class="dropdown-with-link-assets__mobile-list-item dropdown-with-link-assets__mobile-list-item--with-icon"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/learn/docs-guide"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/01/3.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Documentation Guide </h3> </div> </a> </li> </ul> </div> <div> <!--Heading--> <span class="dropdown-with-link-assets__title c-mb-4 d-block font-size-16 text-uppercase"> Learn </span> <!--Repeater--> <ul> <li class="dropdown-with-link-assets__mobile-list-item"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://demo.ravendb.net/"> <div class="d-flex flex-column"> <h3 class="font-size-16" style="color: #F0F1F6"> Demo </h3> </div> </a> </li> <li class="dropdown-with-link-assets__mobile-list-item"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/learn/bootcamp"> <div class="d-flex flex-column"> <h3 class="font-size-16" style="color: #F0F1F6"> Bootcamp </h3> </div> </a> </li> <li class="dropdown-with-link-assets__mobile-list-item"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/webinars"> <div class="d-flex flex-column"> <h3 class="font-size-16" style="color: #F0F1F6"> Webinars </h3> </div> </a> </li> <li class="dropdown-with-link-assets__mobile-list-item"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/workshops"> <div class="d-flex flex-column"> <h3 class="font-size-16" style="color: #F0F1F6"> Workshops </h3> </div> </a> </li> <li class="dropdown-with-link-assets__mobile-list-item"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/learn/inside-ravendb-book"> <div class="d-flex flex-column"> <h3 class="font-size-16" style="color: #F0F1F6"> Inside RavenDB Book </h3> </div> </a> </li> </ul> </div> <div> <!--Heading--> <span class="dropdown-with-link-assets__title c-mb-4 d-block font-size-16 text-uppercase"> Community </span> <!--Repeater--> <ul> <li class="dropdown-with-link-assets__mobile-list-item dropdown-with-link-assets__mobile-list-item--with-icon"> <a class="d-flex dropdown-with-link-assets__item align-items-center external" href="https://github.com/ravendb/ravendb" rel="nofollow"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img width="24" height="24" src="https://ravendb.net/wp-content/uploads/2024/01/01.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> GitHub </h3> </div> </a> </li> <li class="dropdown-with-link-assets__mobile-list-item dropdown-with-link-assets__mobile-list-item--with-icon"> <a class="d-flex dropdown-with-link-assets__item align-items-center external" href="https://stackoverflow.com/questions/tagged/ravendb" rel="nofollow"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img width="24" height="24" src="https://ravendb.net/wp-content/uploads/2024/01/02.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> StackOverflow </h3> </div> </a> </li> </ul> </div> <div> <!--Heading--> <span class="dropdown-with-link-assets__title c-mb-4 d-block font-size-16 text-uppercase"> News </span> <!--Repeater--> <ul> <li class="dropdown-with-link-assets__mobile-list-item"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/news"> <div class="d-flex flex-column"> <h3 class="font-size-16" style="color: #F0F1F6"> Articles </h3> </div> </a> </li> <li class="dropdown-with-link-assets__mobile-list-item"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/news?category=Whitepapers"> <div class="d-flex flex-column"> <h3 class="font-size-16" style="color: #F0F1F6"> Whitepapers </h3> </div> </a> </li> <li class="dropdown-with-link-assets__mobile-list-item"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/events"> <div class="d-flex flex-column"> <h3 class="font-size-16" style="color: #F0F1F6"> Events </h3> </div> </a> </li> </ul> </div> <div> <!--Heading--> <span class="dropdown-with-link-assets__title c-mb-4 d-block font-size-16 text-uppercase"> Assets </span> <!--Repeater--> <ul> <li class="dropdown-with-link-assets__mobile-list-item"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/promotional-materials"> <div class="d-flex flex-column"> <h3 class="font-size-16" style="color: #F0F1F6"> Promotional Materials </h3> </div> </a> </li> </ul> </div> <ul class="dropdown-with-link-assets__social-list d-flex flex-row"> <li class="dropdown-with-link-assets__social-item d-flex align-items-center"> <a href="https://www.linkedin.com/company/hibernating-rhinos-ltd-/" class="external" rel="nofollow"> <figure><img width="16" height="16" src="https://ravendb.net/wp-content/uploads/2024/01/Vector-1.svg" class="attachment-full size-full" alt="" decoding="async" /></figure> </a> </li> <li class="dropdown-with-link-assets__social-item d-flex align-items-center"> <a href="https://twitter.com/ravendb" class="external" rel="nofollow"> <figure><img width="15" height="15" src="https://ravendb.net/wp-content/uploads/2024/01/x.svg" class="attachment-full size-full" alt="" decoding="async" /></figure> </a> </li> <li class="dropdown-with-link-assets__social-item d-flex align-items-center"> <a href="https://www.youtube.com/user/HibernatingRhinos" class="external" rel="nofollow"> <figure><img width="19" height="14" src="https://ravendb.net/wp-content/uploads/2024/01/Vector-5.svg" class="attachment-full size-full" alt="" decoding="async" /></figure> </a> </li> <li class="dropdown-with-link-assets__social-item d-flex align-items-center"> <a href="https://www.facebook.com/pages/RavenDB/265907650186374" class="external" rel="nofollow"> <figure><img width="8" height="16" src="https://ravendb.net/wp-content/uploads/2024/01/Vector-2.svg" class="attachment-full size-full" alt="" decoding="async" /></figure> </a> </li> <li class="dropdown-with-link-assets__social-item d-flex align-items-center"> <a href="https://www.instagram.com/ravendbnet" class="external" rel="nofollow"> <figure><img width="15" height="16" src="https://ravendb.net/wp-content/uploads/2024/01/Vector-4.svg" class="attachment-full size-full" alt="" decoding="async" /></figure> </a> </li> </ul> </div> </div> </div> </li> <li class="menu-item menu-item--main dropdown"> <a href="#" class="nav-link nav-link--disabled">For Business</a> <div class="sub-menu overflow-auto"> <div class="c-px-only-5 c-py-5 bg-secondary"> <div class="dropdown-menu__column-inner dropdown-menu__column-inner--vertical-links dropdown-with-vertical-links dropdown-with-vertical-links--mobile c-p-3 w-100"> <div class="d-flex flex-column text-center"> <img class="dropdown-with-vertical-links__img" src="https://ravendb.net/wp-content/uploads/2024/01/Frame1.svg" alt="" /> <h4 class="dropdown-with-vertical-links__mobile-title d-block font-size-14" style="color: #C3C3CF"> Unlock your business potential </h4> <a class="dropdown-with-vertical-links__mobile-button rounded-pill border-0 hover-opacity-0-75 text-secondary align-items-center justify-content-center w-100 font-size-12 font-weight-bold text-uppercase" style="background-color: #2fb4d2; border-color: #2fb4d2" href="https://ravendb.net/why-ravendb" target="" > <figure class="text-center d-flex align-items-center justify-content-center"> <img width="21" height="21" src="https://ravendb.net/wp-content/uploads/2024/01/111.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <span> Why RavenDB </span> </a> <a class="dropdown-with-vertical-links__mobile-button rounded-pill border-0 hover-opacity-0-75 text-secondary align-items-center justify-content-center w-100 font-size-12 font-weight-bold text-uppercase" style="background-color: #518bee; border-color: #518bee" href="https://ravendb.net/features" target="" > <figure class="text-center d-flex align-items-center justify-content-center"> <img width="21" height="22" src="https://ravendb.net/wp-content/uploads/2024/01/222.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <span> Features </span> </a> <a class="dropdown-with-vertical-links__mobile-button rounded-pill border-0 hover-opacity-0-75 text-secondary align-items-center justify-content-center w-100 font-size-12 font-weight-bold text-uppercase" style="background-color: #7a61d4; border-color: #7a61d4" href="https://ravendb.net/live-demo" target="" > <figure class="text-center d-flex align-items-center justify-content-center"> <img width="21" height="21" src="https://ravendb.net/wp-content/uploads/2024/01/333.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <span> Live demo </span> </a> </div> </div> </div> <div class="c-px-only-5 c-py-5"> <div class="dropdown-menu__column-inner dropdown-menu__column-inner--links-column-assets dropdown-with-link-assets dropdown-with-link-assets--mobile c-px-1 d-flex flex-column"> <div> <!--Heading--> <!--Repeater--> <ul> <li class="dropdown-with-link-assets__mobile-list-item dropdown-with-link-assets__mobile-list-item--with-icon"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/news/use-cases"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/01/001.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Use Cases </h3> </div> </a> </li> <li class="dropdown-with-link-assets__mobile-list-item dropdown-with-link-assets__mobile-list-item--with-icon"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/news"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/01/002.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Articles </h3> </div> </a> </li> <li class="dropdown-with-link-assets__mobile-list-item dropdown-with-link-assets__mobile-list-item--with-icon"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/news?category=Whitepapers"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/01/003.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Whitepapers </h3> </div> </a> </li> <li class="dropdown-with-link-assets__mobile-list-item dropdown-with-link-assets__mobile-list-item--with-icon"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/news/press-releases"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/01/004.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Press Releases </h3> </div> </a> </li> <li class="dropdown-with-link-assets__mobile-list-item dropdown-with-link-assets__mobile-list-item--with-icon"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/news/industry-reports"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/01/005.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Industry Reports </h3> </div> </a> </li> </ul> </div> <div> <!--Heading--> <!--Repeater--> <ul> <li class="dropdown-with-link-assets__mobile-list-item dropdown-with-link-assets__mobile-list-item--with-icon"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/performance"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/01/1111.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Performance </h3> </div> </a> </li> <li class="dropdown-with-link-assets__mobile-list-item dropdown-with-link-assets__mobile-list-item--with-icon"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/comparison"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img width="34" height="34" src="https://ravendb.net/wp-content/uploads/2024/01/2222.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #F0F1F6"> Comparison </h3> </div> </a> </li> </ul> </div> <div> <!--Heading--> <span class="dropdown-with-link-assets__title c-mb-4 d-block font-size-16 text-uppercase"> PROGRAMS </span> <!--Repeater--> <ul> <li class="dropdown-with-link-assets__mobile-list-item"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/poc"> <div class="d-flex flex-column"> <h3 class="font-size-16" style="color: #F0F1F6"> Proof of Concept Program </h3> </div> </a> </li> <li class="dropdown-with-link-assets__mobile-list-item"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/educators-program"> <div class="d-flex flex-column"> <h3 class="font-size-16" style="color: #F0F1F6"> Academic Program </h3> </div> </a> </li> <li class="dropdown-with-link-assets__mobile-list-item"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/partners"> <div class="d-flex flex-column"> <h3 class="font-size-16" style="color: #F0F1F6"> Partners Program </h3> </div> </a> </li> </ul> </div> <div> <!--Heading--> <span class="dropdown-with-link-assets__title c-mb-4 d-block font-size-16 text-uppercase"> MISC </span> <!--Repeater--> <ul> <li class="dropdown-with-link-assets__mobile-list-item"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/events"> <div class="d-flex flex-column"> <h3 class="font-size-16" style="color: #F0F1F6"> Events </h3> </div> </a> </li> <li class="dropdown-with-link-assets__mobile-list-item"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/why-ravendb/whats-new"> <div class="d-flex flex-column"> <h3 class="font-size-16" style="color: #F0F1F6"> What’s New </h3> </div> </a> </li> <li class="dropdown-with-link-assets__mobile-list-item"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/about/roadmap"> <div class="d-flex flex-column"> <h3 class="font-size-16" style="color: #F0F1F6"> Roadmap </h3> </div> </a> </li> </ul> </div> </div> </div> </div> </li> <li class="menu-item menu-item--main dropdown"> <a href="#" class="nav-link nav-link--disabled">Pricing</a> <div class="sub-menu overflow-auto"> <div class="c-px-only-5 c-py-5"> <div class="dropdown-menu__column-inner dropdown-menu__column-inner--links-column-assets dropdown-with-link-assets dropdown-with-link-assets--mobile c-px-1 d-flex flex-column"> <div> <!--Heading--> <!--Repeater--> <ul> <li class="dropdown-with-link-assets__mobile-list-item dropdown-with-link-assets__mobile-list-item--with-icon"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/buy"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img width="23" height="18" src="https://ravendb.net/wp-content/uploads/2024/01/a1.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #388ee9"> On-premise Pricing </h3> </div> </a> </li> <li class="dropdown-with-link-assets__mobile-list-item dropdown-with-link-assets__mobile-list-item--with-icon"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://cloud.ravendb.net/pricing"> <figure class="dropdown-with-link-assets__figure c-mr-3"> <img width="24" height="24" src="https://ravendb.net/wp-content/uploads/2024/01/a2.svg" class="attachment-full size-full" alt="" decoding="async" /> </figure> <div class="d-flex flex-column"> <h3 class="font-size-16 font-weight-semi-bold" style="color: #37c4ac"> Cloud Pricing </h3> </div> </a> </li> </ul> </div> <div> <!--Heading--> <span class="dropdown-with-link-assets__title c-mb-4 d-block font-size-16 text-uppercase"> PROGRAMS </span> <!--Repeater--> <ul> <li class="dropdown-with-link-assets__mobile-list-item"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/poc"> <div class="d-flex flex-column"> <h3 class="font-size-16" style="color: #F0F1F6"> Proof of Concept Program </h3> </div> </a> </li> <li class="dropdown-with-link-assets__mobile-list-item"> <a class="d-flex dropdown-with-link-assets__item align-items-center" href="https://ravendb.net/educators-program"> <div class="d-flex flex-column"> <h3 class="font-size-16" style="color: #F0F1F6"> Academic Program </h3> </div> </a> </li> </ul> </div> </div> </div> </div> </li> <li class="menu-item menu-item--main"> <a href="https://ravendb.net/support" class="nav-link">Support</a> </li> <li class="menu-item menu-item--main"> <a href="https://ravendb.net/about" class="nav-link">About</a> </li> <li class="menu-item menu-item--main"> <a href="https://ravendb.net/contact" class="nav-link">Contact</a> </li> </ul> <div class="js-minicart d-xl-none"></div> </div> </nav> <a href="#main" aria-label="Return to top" class="return-to-top js-scroll-to js-return-to-top d-none d-md-flex align-items-center justify-content-center position-fixed text-center text-white border-0 rounded-circle"> <svg aria-hidden="true" data-prefix="far" data-icon="chevron-up" class="return-to-top__chevron d-block" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"> <title>Icon chevron up</title> <path fill="currentColor" d="M6.101 359.293L25.9 379.092c4.686 4.686 12.284 4.686 16.971 0L224 198.393l181.13 180.698c4.686 4.686 12.284 4.686 16.971 0l19.799-19.799c4.686-4.686 4.686-12.284 0-16.971L232.485 132.908c-4.686-4.686-12.284-4.686-16.971 0L6.101 342.322c-4.687 4.687-4.687 12.285 0 16.971z"></path> </svg> </a> <!-- Start of Fonts --> <script class="disable-js-delay"> WebFontConfig = { // typekit: { id: 'yiu8nsr' }, custom: { families: ['Icomoon', 'sans-serif'], urls: ['https://ravendb.net/wp-content/themes/ravendb/src/styles/base/_font-faces.css'] } }; (function(d) { var wf = d.createElement('script'), s = d.scripts[0]; wf.src = 'https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js'; wf.async = true; s.parentNode.insertBefore(wf, s); })(document); </script> <!-- End of Fonts --> <script> const lazyloadRunObserver = () => { const lazyloadBackgrounds = document.querySelectorAll( `.e-con.e-parent:not(.e-lazyloaded)` ); const lazyloadBackgroundObserver = new IntersectionObserver( ( entries ) => { entries.forEach( ( entry ) => { if ( entry.isIntersecting ) { let lazyloadBackground = entry.target; if( lazyloadBackground ) { lazyloadBackground.classList.add( 'e-lazyloaded' ); } lazyloadBackgroundObserver.unobserve( entry.target ); } }); }, { rootMargin: '200px 0px 200px 0px' } ); lazyloadBackgrounds.forEach( ( lazyloadBackground ) => { lazyloadBackgroundObserver.observe( lazyloadBackground ); } ); }; const events = [ 'DOMContentLoaded', 'elementor/lazyload/observe', ]; events.forEach( ( event ) => { document.addEventListener( event, lazyloadRunObserver ); } ); </script> <link data-minify="1" rel='stylesheet' id='additional-info-block-styles-css' href='https://ravendb.net/wp-content/cache/min/1/wp-content/themes/ravendb/dist/acf_block_additional_info.css?ver=1743679342' media='all' /> <link data-minify="1" rel='stylesheet' id='heading-with-tooltip-and-content-styles-css' href='https://ravendb.net/wp-content/cache/min/1/wp-content/themes/ravendb/dist/acf_block_heading_with_tooltip_and_content.css?ver=1743679342' media='all' /> <script id="disqus_count-js-extra"> /* <![CDATA[ */ var countVars = {"disqusShortname":"ravendb-news"}; /* ]]> */ </script> <script src="https://ravendb.net/wp-content/plugins/disqus-comment-system/public/js/comment_count.js?ver=3.1.2" id="disqus_count-js" data-rocket-defer defer></script> <script src="https://ravendb.net/wp-content/plugins/table-of-contents-plus/front.min.js?ver=2411.1" id="toc-front-js" data-rocket-defer defer></script> <script id="rocket-browser-checker-js-after"> /* <![CDATA[ */ "use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var RocketBrowserCompatibilityChecker=function(){function RocketBrowserCompatibilityChecker(options){_classCallCheck(this,RocketBrowserCompatibilityChecker),this.passiveSupported=!1,this._checkPassiveOption(this),this.options=!!this.passiveSupported&&options}return _createClass(RocketBrowserCompatibilityChecker,[{key:"_checkPassiveOption",value:function(self){try{var options={get passive(){return!(self.passiveSupported=!0)}};window.addEventListener("test",null,options),window.removeEventListener("test",null,options)}catch(err){self.passiveSupported=!1}}},{key:"initRequestIdleCallback",value:function(){!1 in window&&(window.requestIdleCallback=function(cb){var start=Date.now();return setTimeout(function(){cb({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-start))}})},1)}),!1 in window&&(window.cancelIdleCallback=function(id){return clearTimeout(id)})}},{key:"isDataSaverModeOn",value:function(){return"connection"in navigator&&!0===navigator.connection.saveData}},{key:"supportsLinkPrefetch",value:function(){var elem=document.createElement("link");return elem.relList&&elem.relList.supports&&elem.relList.supports("prefetch")&&window.IntersectionObserver&&"isIntersecting"in IntersectionObserverEntry.prototype}},{key:"isSlowConnection",value:function(){return"connection"in navigator&&"effectiveType"in navigator.connection&&("2g"===navigator.connection.effectiveType||"slow-2g"===navigator.connection.effectiveType)}}]),RocketBrowserCompatibilityChecker}(); /* ]]> */ </script> <script id="rocket-preload-links-js-extra"> /* <![CDATA[ */ var RocketPreloadLinksConfig = {"excludeUris":"\/download\/thank-you|\/news|\/news\/|\/comparison|\/content\/img\/|\/docs|\/docs\/|\/(?:.+\/)?feed(?:\/(?:.+\/?)?)?$|\/(?:.+\/)?embed\/|\/(index.php\/)?(.*)wp-json(\/.*|$)|\/refer\/|\/go\/|\/recommend\/|\/recommends\/","usesTrailingSlash":"","imageExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php","fileExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php|html|htm","siteUrl":"https:\/\/ravendb.net","onHoverDelay":"100","rateThrottle":"3"}; /* ]]> */ </script> <script id="rocket-preload-links-js-after"> /* <![CDATA[ */ (function() { "use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e=function(){function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}}();function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var t=function(){function n(e,t){i(this,n),this.browser=e,this.config=t,this.options=this.browser.options,this.prefetched=new Set,this.eventTime=null,this.threshold=1111,this.numOnHover=0}return e(n,[{key:"init",value:function(){!this.browser.supportsLinkPrefetch()||this.browser.isDataSaverModeOn()||this.browser.isSlowConnection()||(this.regex={excludeUris:RegExp(this.config.excludeUris,"i"),images:RegExp(".("+this.config.imageExt+")$","i"),fileExt:RegExp(".("+this.config.fileExt+")$","i")},this._initListeners(this))}},{key:"_initListeners",value:function(e){-1<this.config.onHoverDelay&&document.addEventListener("mouseover",e.listener.bind(e),e.listenerOptions),document.addEventListener("mousedown",e.listener.bind(e),e.listenerOptions),document.addEventListener("touchstart",e.listener.bind(e),e.listenerOptions)}},{key:"listener",value:function(e){var t=e.target.closest("a"),n=this._prepareUrl(t);if(null!==n)switch(e.type){case"mousedown":case"touchstart":this._addPrefetchLink(n);break;case"mouseover":this._earlyPrefetch(t,n,"mouseout")}}},{key:"_earlyPrefetch",value:function(t,e,n){var i=this,r=setTimeout(function(){if(r=null,0===i.numOnHover)setTimeout(function(){return i.numOnHover=0},1e3);else if(i.numOnHover>i.config.rateThrottle)return;i.numOnHover++,i._addPrefetchLink(e)},this.config.onHoverDelay);t.addEventListener(n,function e(){t.removeEventListener(n,e,{passive:!0}),null!==r&&(clearTimeout(r),r=null)},{passive:!0})}},{key:"_addPrefetchLink",value:function(i){return this.prefetched.add(i.href),new Promise(function(e,t){var n=document.createElement("link");n.rel="prefetch",n.href=i.href,n.onload=e,n.onerror=t,document.head.appendChild(n)}).catch(function(){})}},{key:"_prepareUrl",value:function(e){if(null===e||"object"!==(void 0===e?"undefined":r(e))||!1 in e||-1===["http:","https:"].indexOf(e.protocol))return null;var t=e.href.substring(0,this.config.siteUrl.length),n=this._getPathname(e.href,t),i={original:e.href,protocol:e.protocol,origin:t,pathname:n,href:t+n};return this._isLinkOk(i)?i:null}},{key:"_getPathname",value:function(e,t){var n=t?e.substring(this.config.siteUrl.length):e;return n.startsWith("/")||(n="/"+n),this._shouldAddTrailingSlash(n)?n+"/":n}},{key:"_shouldAddTrailingSlash",value:function(e){return this.config.usesTrailingSlash&&!e.endsWith("/")&&!this.regex.fileExt.test(e)}},{key:"_isLinkOk",value:function(e){return null!==e&&"object"===(void 0===e?"undefined":r(e))&&(!this.prefetched.has(e.href)&&e.origin===this.config.siteUrl&&-1===e.href.indexOf("?")&&-1===e.href.indexOf("#")&&!this.regex.excludeUris.test(e.href)&&!this.regex.images.test(e.href))}}],[{key:"run",value:function(){"undefined"!=typeof RocketPreloadLinksConfig&&new n(new RocketBrowserCompatibilityChecker({capture:!0,passive:!0}),RocketPreloadLinksConfig).init()}}]),n}();t.run(); }()); /* ]]> */ </script> <script src="https://ravendb.net/wp-content/themes/ravendb/dist/vendor.bundle.js?ver=250327-93035" id="vendor-scripts-js" data-rocket-defer defer></script> <script src="https://ravendb.net/wp-content/themes/ravendb/dist/archive_features.bundle.js?ver=250327-93032" id="archive-features-scripts-js" data-rocket-defer defer></script> <script src="https://ravendb.net/wp-content/themes/ravendb/inc/zoho-custom-script/zoho-custom-script.js" id="zoho-custom-script-js" data-rocket-defer defer></script> <script src="https://crm.zoho.com/crm/javascript/zcga.js" data-rocket-defer defer> </script> </body> </html> <!-- This website is like a Rocket, isn't it? Performance optimized by WP Rocket. Learn more: https://wp-rocket.me - Debug: cached@1743947076 -->