国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

在 Node.js 中使用 MongoDB 事務(wù)

這篇具有很好參考價(jià)值的文章主要介紹了在 Node.js 中使用 MongoDB 事務(wù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

MongoDB事務(wù)
事務(wù)介紹

在 MongoDB 中,對(duì)單個(gè)文檔的操作是原子的。由于您可以使用嵌入的文檔和數(shù)組來捕獲單個(gè)文檔結(jié)構(gòu)中的數(shù)據(jù)之間的關(guān)系,而不是跨多個(gè)文檔和集合進(jìn)行規(guī)范化,因此這種單一文檔的原子性消除了對(duì)多文檔的需求許多實(shí)際用例的事務(wù)。

對(duì)于需要對(duì)多個(gè)文檔(在單個(gè)或多個(gè)集合中)進(jìn)行讀取和寫入原子化的情況,MongoDB 支持多文檔事務(wù)。對(duì)于分布式事務(wù),事務(wù)可用于多個(gè)操作、集合、數(shù)據(jù)庫、文檔和分片。

事務(wù)和原子性

分布式事務(wù)和多單據(jù)事務(wù) 從 MongoDB 4.2 開始,這兩個(gè)術(shù)語是同義詞。分布式事務(wù)是指分片群集和副本集上的多文檔交易記錄。多文檔事務(wù)(無論是在分片群集還是副本集上)也稱為從 MongoDB 4.2 開始的分布式事務(wù)。 對(duì)于需要對(duì)多個(gè)文檔(在單個(gè)或多個(gè)集合中)進(jìn)行讀取和寫入原子化的情況,MongoDB 支持多文檔事務(wù):

在版本 4.0中,MongoDB 支持副本集上的多文檔事務(wù)。

在版本 4.2中,MongoDB 引入了分布式事務(wù),這增加了對(duì)分片群集上的多文檔事務(wù)的支持,并合并了對(duì)副本集上多文檔事務(wù)的現(xiàn)有支持。

要在 MongoDB 4.2 部署(副本集和分片群集)上使用事務(wù),客戶端必須使用為 MongoDB 4.2 更新的 MongoDB 驅(qū)動(dòng)程序。

多文檔事務(wù)是原子的(即提供"全無"命題):

當(dāng)事務(wù)提交時(shí),事務(wù)中所做的所有數(shù)據(jù)更改都將保存在事務(wù)外部并可見。也就是說,事務(wù)不會(huì)提交其某些更改,而回滾其他更改。

在事務(wù)提交之前,事務(wù)中所做的數(shù)據(jù)更改在事務(wù)外部不可見。

但是,當(dāng)事務(wù)寫入多個(gè)分片時(shí),并非所有外部讀取操作都需要等待提交的事務(wù)的結(jié)果在分片中可見。例如,如果提交事務(wù),寫入 1 在分片 A 上可見,但在分片 B 上尚未顯示寫入 2,則讀取時(shí)的外部讀取"local"可以讀取寫入 1 的結(jié)果,而看不到寫入 2。

當(dāng)事務(wù)中止時(shí),事務(wù)中所做的所有數(shù)據(jù)更改將被丟棄,而不會(huì)變得可見。例如,如果事務(wù)中的任何操作失敗,事務(wù)將中止,并且事務(wù)中所做的所有數(shù)據(jù)更改將被丟棄,而不會(huì)變得可見。

準(zhǔn)備工作

MongoDB 使用事務(wù)的前提是 MongoDB 版本大于 4.0,需要配置 MongoDB 工作模式為副本集,單個(gè) MongoDB 節(jié)點(diǎn)不足支持事務(wù),因?yàn)?MongoDB 事務(wù)至少需要兩個(gè)節(jié)點(diǎn)。其中一個(gè)是主節(jié)點(diǎn),負(fù)責(zé)處理客戶端請(qǐng)求,其余的都是從節(jié)點(diǎn),負(fù)責(zé)復(fù)制主節(jié)點(diǎn)上的數(shù)據(jù)。mongodb各個(gè)節(jié)點(diǎn)常見的搭配方式為:一主一從、一主多從。主節(jié)點(diǎn)記錄在其上的所有操作oplog,從節(jié)點(diǎn)定期輪詢主節(jié)點(diǎn)獲取這些操作,然后對(duì)自己的數(shù)據(jù)副本執(zhí)行這些操作,從而保證從節(jié)點(diǎn)的數(shù)據(jù)與主節(jié)點(diǎn)一致。文章來源地址http://www.zghlxwxcb.cn/news/detail-694815.html

部署 功能 兼容性版本
副本集 4.0
分片集群 4.2

鏈接:https://juejin.cn/post/6844904089612992520
?

到了這里,關(guān)于在 Node.js 中使用 MongoDB 事務(wù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Node.js開發(fā)-MongoDB

    介紹 Mongoose 是一個(gè)對(duì)象文檔模型庫,官網(wǎng) http://www.mongoosejs.net/ 作用 方便使用代碼操作 mongodb 數(shù)據(jù)庫 使用流程 文檔結(jié)構(gòu)可選的常用字段類型列表 類型 描述 String 字符串 Number 數(shù)字 Boolean 布爾值 Array 數(shù)組,也可以使用 [] 來標(biāo)識(shí) Date 日期 Buffer Buffer 對(duì)象 Mixed 任意類型,需要使

    2024年02月20日
    瀏覽(18)
  • Node.js詳解(四):連接MongoDB

    Node.js詳解(四):連接MongoDB

    MongoDB 對(duì)許多平臺(tái)都提供驅(qū)動(dòng)可以訪問數(shù)據(jù)庫,如C#、Java、Node.js等。下面一步一步帶著大家在Nodejs中連接MongoDB 命令如下: 連接MongoDB數(shù)據(jù)庫,實(shí)現(xiàn)curd、圖片上傳(使用element-ui框架)功能的完整代碼如下: ejs 頁面:

    2024年02月16日
    瀏覽(24)
  • 前端Vue Node.js + Express + MongoDB 構(gòu)建的后端服務(wù)API接口

    構(gòu)建一個(gè)使用 Vue.js 作為前端, Node.js + Express + MongoDB 作為后端服務(wù)的全棧應(yīng)用涉及到多個(gè)步驟。這里簡(jiǎn)要概述整個(gè)過程,并提供一些基本的代碼示例來幫助你開始。 安裝 MongoDB: 根據(jù)你的操作系統(tǒng)從 MongoDB 官網(wǎng) 下載并安裝 MongoDB。 啟動(dòng) MongoDB 服務(wù): 安裝完成后,根據(jù) MongoDB 的

    2024年04月14日
    瀏覽(42)
  • node中的數(shù)據(jù)持久化之mongoDB

    node中的數(shù)據(jù)持久化之mongoDB

    MongoDB 是一種 開源的非關(guān)系型數(shù)據(jù)庫 ,正如它的名字所表示的, MongoDB 支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是一種以 bson 格式(一種 json 的存儲(chǔ)形式)的 文檔存儲(chǔ)方式 為主,支持的數(shù)據(jù)結(jié)構(gòu)類型更加豐富的 NoSQL 數(shù)據(jù)庫。它是一種 介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn) 品,是非關(guān)

    2024年02月13日
    瀏覽(16)
  • 前端使用node.js連接sql.server數(shù)據(jù)庫教程

    前端使用node.js連接sql.server數(shù)據(jù)庫教程

    最近項(xiàng)目中要用到node寫接口然后連接公司現(xiàn)有的sql.server數(shù)據(jù)庫,再把執(zhí)行結(jié)果返回給前端(還是我),因?yàn)橹耙恢弊銮岸诉@塊,后端這方面不是很懂,花了很長(zhǎng)的時(shí)間終于研究出來了(還是太菜了,走了很多彎路),所以寫個(gè)博客,一是復(fù)習(xí)鞏固,二是給其他有需要的小伙伴一個(gè)參考,盡量

    2024年02月11日
    瀏覽(27)
  • node教程(四)Mongodb+mongoose

    node教程(四)Mongodb+mongoose

    1.1Mongodb是什么? Mongodb是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫 1.2數(shù)據(jù)庫是什么? 數(shù)據(jù)庫是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲(chǔ)和管理數(shù)據(jù)的應(yīng)用程序。 1.3數(shù)據(jù)庫的作用 主要作用就是管理數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行增刪改查 1.4數(shù)據(jù)庫管理數(shù)據(jù)的特點(diǎn) 相比于純文件,數(shù)據(jù)庫管理數(shù)據(jù)具有如下特點(diǎn)

    2024年02月05日
    瀏覽(15)
  • centos配置nginx+node前后臺(tái)+mongodb

    centos 環(huán)境下安裝

    2024年02月11日
    瀏覽(24)
  • 【node進(jìn)階】淺析Koa框架---ejs模板|文件上傳|操作mongoDB

    【node進(jìn)階】淺析Koa框架---ejs模板|文件上傳|操作mongoDB

    ? 作者簡(jiǎn)介:一名普通本科大三的學(xué)生,致力于提高前端開發(fā)能力 ? 個(gè)人主頁:前端小白在前進(jìn)的主頁 ?? 系列專欄 : node.js學(xué)習(xí)專欄 ?? 個(gè)人社區(qū) : 個(gè)人交流社區(qū) ?? 學(xué)習(xí)格言: ?? 打不倒你的會(huì)使你更強(qiáng)!?? ?? 刷題網(wǎng)站:這段時(shí)間有許多的小伙伴在問有沒有什么

    2024年01月25日
    瀏覽(25)
  • node.js之連接數(shù)據(jù)庫

    node.js之連接數(shù)據(jù)庫

    我們?nèi)绾卧趎odejs中連接并操作數(shù)據(jù)庫呢? 讓我為大家解答一下吧! 1.安裝操作MySQL數(shù)據(jù)庫的第三方塊 (mysql) mysql 模塊是托管于 npm 上的第三方塊。它提供了在 Nodejs 項(xiàng)目中連接和操作 MySQL 數(shù)據(jù)庫的能力想要在項(xiàng)目中使用它,需要先運(yùn)行如下命令,將mysql安裝為項(xiàng)目的依賴包 2

    2024年01月19日
    瀏覽(37)
  • node基于express+mongodb項(xiàng)目的整體結(jié)構(gòu)搭建和邏輯抽離

    node基于express+mongodb項(xiàng)目的整體結(jié)構(gòu)搭建和邏輯抽離

    這是我用express實(shí)現(xiàn)的一個(gè)縮減版的注冊(cè)功能,如下: app.js 目錄結(jié)構(gòu)如下: 可以看到的是所有的邏輯,創(chuàng)建服務(wù)器、鏈接數(shù)據(jù)庫、創(chuàng)建集合、注冊(cè)都在app.js文件中,這只是一個(gè)簡(jiǎn)單的注冊(cè)功能,可能看上去還不是很亂,但是當(dāng)我們后面項(xiàng)目越來越大,所做的功能越來越多,顯

    2024年02月16日
    瀏覽(14)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包