MongoDB——写出错机制

2023-05-16

写出错机制

MongoDB的写操作命令默认是没有任何出错返回值的,这减少了写操作的等待时间,也就是说,不管有没有写入到磁盘或者有没有遇到错误,它都不会报错。这在大量插
入类似GPS定位坐标信息时是非常好的,既保证了插入速度,又允许在极端情况下丢失或插入错误数据。但是,在处理电商平台上类似商品订单的高价值数据时,是不允许丢或插入错误数据的。我们希望在出错前给予友好提示。

因此,在数据写操作出错时,我们希望能获得第一手的出错信息。MongoDB的GetLastError就是用来获得写操作是否成功信息的命令。在大多数编程语言驱动包里,这
个命令是被包装成WriteConcern类被客户端应用程序调用的(从MongoDB2.6版开始,程序员无需直接调用GetLastError命令,通过WriteConcern参数选项确定写操作出错捕捉机制)。

1、WriteConcern

在插入、更新、删除命令中,WriteConcern参数格式为:

Writeconcern:{
	w: <value>,
	j: <boolean>,
	wtimeout: <number>
}
参数项参数值参数说明
w0写操作不返回确认错误信息,但是当通信Socket或网络错误时,可能会返回错误信息;w:0,但j:true,则优先返回其他独立Mongod或副本集的主节点写操作错误信息
1写操作返回确认错误信息,w:1是默认写入关注
大于1的参数值仅对副本集有效,以指定确认出错成员的数量
majority写入磁盘日志(Journal),前提要启动磁盘日志。目前MongoDB都默认自动启动磁盘日志当写操作返回结果对象里包含w:"majority"时,客户端可以readConcern读取该写的结果
Jtruej:true时,MongDB返回写磁盘日志的出错信息,包括副本集里任何成员。如果Mongod没有启动日志记录,也进行关注。
wtimeout毫秒数该选项指定写入关注的时间限制,该参数仅适用大于1的W值时的设置当写操作超过该参数指定的时间范围后,返回写出错信息。当返回时,MongoDB不会撤销关注时间范围内己经执行写成功的数据。也就是存在一部分写入成功,一部分写入失败的问题

单机环境下常见的写出错关注参数配置,如下表:

w设置不设置jj:truej:false
w:1数据写入内存数据写入磁盘日志数据写入内存
w:“majority”数据写入磁盘日志,前提要启动磁盘日志数据写入磁盘日志数据写入内存

副本集环境下常见的写出错关注参数配置入下表:

w设置不设置jj:truej:false
w:为数值数据写入内存数据写入磁盘日志数据写入内存
w:“majority”取决于writeConcernMajorityJournalDefault()的值,如果为true,则写入磁盘日志;如果为false,写入内存数据写入磁盘日志数据写入内存

2、写出错示例

  • insert出错实例
    假设已经插入一条下面的文档,再次插入该文档时将报出错。
db.goodsbaseinf.insert(
	{_id:1, item: "大学生教材", name: "《大学一年级语文(上册)》", price:50},
	{writeConcern: {w: "majority", wtimeout: 2000}}
)

在这里插入图片描述

  • update出错实例
db.goodsbaseinf.update(
	{_id: 1},
	{$set{item:"大学}$生教材}},
	{writeConcern: {w: 1,}}
)

在这里插入图片描述

  • remove出错实例
db.goodsbaseinf.remove({_id / 2s})

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MongoDB——写出错机制 的相关文章

  • Openwrt无线中继设置并访问外网

    Openwrt无线中继设置并访问外网 本篇博文参考来自 xff1a http blog csdn net pifangsione article details 13162023 配置目标 主路由器使用AP模式发射Wifi从路由器使用Cli
  • 在 Windows 7 中禁用IPv6协议/IPv6隧道

    How to disable certain Internet Protocol version 6 IPv6 components in Windows Vista Windows 7 and Windows Server 2008 ht
  • python matplotlib绘图大全(散点图、柱状图、饼图、极坐标图、热量图、三维图以及热图)...

    2019 7 14晚 matplotlib七种常见图像输出编程大全 七种图形汇总输出如下 xff1a import numpy as np 导入数据结构nmupy模块 import matplotlib pyplot as plt 导入ma
  • 光纤模式分布 matlab,matlab计算单模光纤模式分布(公布源代码及参考文献)

    最近在使用matlab计算单模光纤纤芯模及包层模模场分布时 xff0c 有一些问题一直悬而未决 xff0c 多次咨询原作者后虽解决了部分问题 xff0c 但是余下的问题原作者也不理我了 xff0c 特发此贴以广交学习光纤方面的同学 老师及科
  • Ubuntu下编译安装MySQL5.7

    tar zxvf mysql 5 7 14 tar gz cd mysql 5 7 14 第一步 xff1a cmake DCMAKE INSTALL PREFIX 61 usr local mysql DMYSQL DATADIR 61
  • UNICODE使用的一些知识和技巧

    UNICODE宏和 UNICODE宏的关系 在windows编程中 经常要编译Unicode版本的程序 方法是工程文件的配置中加上UNICODE或者 UNICODE编译条件 那么到底是用哪一个呢 Jeffrey Richter在 Windo
  • cmake 常用命令

    1 使用日期 获取时间 string TIMESTAMP DATE TIME 34 y m d H M 34 获取日期 string TIMESTAMP DATE VERSION 34 m d 34 转载于 https www cnblog
  • QQ2008 msg.db,user.db读取

    Saturday November 27 2010 msg db读取 下载 user db读取 下载 转载于 https www cnblogs com ycdx2001 archive 2010 11 27 1889498 html
  • MongoDB——Mac环境搭建

    1 下载 官网地址 xff1a https www mongodb com 2 解压并配置 解压到 usr local 配置Path xff0c vim打开 bash profile添加export PATH 61 PATH usr loc
  • Django模型

    模型是你的数据的唯一的 权威的信息源 它包含你所储存数据的必要字段和行为 通常 xff0c 每个模型对应数据库中唯一的一张表 1 基础 每个模型都是django db models Model 的一个Python 子类 模型的每个属性都表示
  • 速度之王 — LZ4压缩算法(二)

    LZ4 Extremely Fast Compression algorithm 项目 xff1a http code google com p lz4 作者 xff1a Yann Collet 本文作者 xff1a zhangskd 64
  • dpkg

    dpkg error dpkg status database is locked by another process 无法获得锁 var lib apt lists lock open ubuntu升级错误或强制中断后容易爆出上面两个错
  • html5中加一个链接,HTML5教程—链接的添加方式_HTML5教程_链接添加_HTML5运用_课课家...

    HTML5的强大功能有很多 xff0c 在图像的修改中 xff0c 我们可见其强大 xff0c 然而其中有一个功能仍能可以运用于广告中的 xff0c 因为在广告主的需求中 xff0c 有很多情况下需要在动画中添加一些外部链接 而这份文档就在
  • Django--初始化

    1 Django介绍 它是一个WEB框架 Django 大而全tornado flask 小而精 2 Django安装 https www djangoproject com download 3 创建django程序 手动创建 file
  • ubuntu更换源后报错:W: GPG error: (转载)

    From xff1a http www njava com njava 626 html 更换163源后 xff0c 更新源时出现错误 apt get update W GPG error http extras ubuntu com pr
  • 魔咒词典

    题目描述 哈利波特在魔法学校的必修课之一就是学习魔咒 据说魔法世界有100000种不同的魔咒 xff0c 哈利很难全部记住 xff0c 但是为了对抗强敌 xff0c 他必须在危急时刻能够调用任何一个需要的魔咒 xff0c 所以他需要你的帮助
  • 禁用计算机上的所有鼠标加速,鼠标加速,小编告诉你鼠标加速怎么关

    我们在使用电脑的时候经常都会需要使用到鼠标 xff0c 所以对于鼠标的相关知识我们应该要了解的多一些 所以今天小编就来给你们讲讲鼠标加速要怎么关 xff0c 感兴趣的小伙伴们就接着看下去吧 小伙伴们 xff0c 小编今天来给你们说说关于电脑
  • 位运算之左移右移运算之详解

    先看如下一段左移右移的代码及其结果 xff1a 代码 include 34 stdio h 34 char leftshift char i int n if n lt 0 return 1 return i lt lt n
  • linux安装debian桌面,在Debian 10 Buster上安装Cinnamon桌面环境的方法

    在本文中 xff0c 我们将介绍在Debian 10 Buster 操作系统上安装Cinnamon桌面环境的方法 安装Debian 10 Buster之后 xff0c 可能需要将桌面环境更改为你喜欢的桌面环境 xff0c 默认安装搭载Gno
  • MongoDB——更新文档详解

    更新文档 span class token comment 语法 span db span class token punctuation span collection span class token punctuation span

随机推荐

  • CCF-CSP题解 201609-3 炉石传说

    模拟 注意随从的编号在 summon 和 attack 随从死亡时都可能改变 code include lt bits stdc 43 43 h gt using namespace std struct tNode int attack
  • USACO Network of Schools(学校网络) ---强连通分量

    描述 一些学校的校园网连接在一个计算机网络上 学校之间存在软件支援协议 每个学校都有它应支援的学校名单 xff08 学校a支援学校b xff0c 并不表示学校b一定支援学校a xff09 当某校获得一个新软件时 xff0c 无论是直接得到的
  • iOS开发-使用Storyboard进行界面跳转及传值

    前言 xff1a 苹果官方是推荐我们将所有的UI都使用Storyboard去搭建 xff0c Storyboard也是一个很成熟的工具了 使用Storyboard去搭建所有界面 xff0c 我们可以很迅捷地搭建出复杂的界面 xff0c 也就
  • iOS 8 自适应 Cell

    在使用 table view 的时侯经常会遇到这样的需求 xff1a table view 的 cell 中的内容是动态的 xff0c 导致在开发的时候不知道一个 cell 的高度具体是多少 xff0c 所以需要提供一个计算 cell 高度
  • Linux命令之切换用户

    一 从 user 用户切换到 root 用户 不管是用图形模式登录 Ubuntu xff0c 还是命令行模式登录 xff0c 我们会发现缺省的用户是 user xff0c 但是当我们需要执行一些具有 root 权限的操作 如修还系统文件 时
  • CNN对位移、尺度和旋转不变性的讨论

    CNN得益于全局共享权值和pool操作 xff0c 具有平移不变性 对于尺度不变性 xff0c 是没有或者说具有一定的不变性 xff08 尺度变化不大 xff09 xff0c 实验中小目标的检测是难点 xff0c 需要采用FPN或者其他的方
  • AtCoder Regular Contest 069 D 思维,模拟 E 模拟,贪心

    AtCoder Regular Contest 069 D Menagerie 题意 xff1a n只动物从1到n围成一个圈 xff0c 每只动物要么是羊要么是狼 每只动物会说出一个字母 xff0c 说 39 o 39 表示它两边动物种类相
  • git stash解决代码merge出错

    最近在使用git提交代码时 xff0c 遇到一个问题 xff0c 就是我修改了几个文件的代码 xff0c 然后又想把自己代码库里面的代码更新到最新版本 xff0c 然后不出所料 xff0c 代码冲突了 xff01 作为一个喜欢解决问题的程序
  • 锐捷网络交换机的配置命令集

    转自 xff1a http hi baidu com bjgbd 交换机 gt Enable 进入特权模式 Exit 返回上一级操作模式 End 返回到特权模式 write memory 或copy running config start
  • MongoDB——配置文件详解

    配置文件 MongoDB常用配置参数可以由config配置文件统一设置实现 Mongod的配置文件是mongod yaml Mongos的配置文件为mongos yaml MongoDB在2 6版本开始 xff0c 配置文件 采用YAML格
  • 计算机远程桌面自动关闭,windows10重启之后自动关闭远程桌面是怎么回事

    首先 xff0c 请大家打开Win 10系统桌面主页面 xff0c 在桌面页面中点击开始菜单 xff0c 在弹出的开始菜单中点击选择 设置 选项 xff0c 进入Win10系统设置页面 在Win10系统设置页面中 xff0c 点击选择 更新
  • openwrt issues

    1 ssh 没密码不让登录 解决方法 xff1a 使用串口登录上 passwd root 设置密码后 etc init d dropbear restart 发现option BannerFile 39 etc banner 39 被屏蔽掉
  • 图片样本集

    图像识别训练样本集 ImageNet ImageNet是一个计算机视觉系统识别项目 xff0c 是目前世界上图像识别最大的数据库 是美国斯坦福的计算机科学家李飞飞模拟人类的识别系统建立的 能够从图片识别物体 目前已经包含14197122张图
  • ubuntu16.10安装网易云音乐

    首先去官网 xff08 https music 163 com download xff09 下载安装包 xff1a netease cloud music 1 1 0 amd64 ubuntu deb 下载好以后 xff0c 执行安装命令
  • 安装 protoc 的各种坑

    首先下载 protoc 2 6 1 https github com google protobuf releases download v2 6 1 protobuf 2 6 1 tar gz https pkgs org downloa
  • 在mysql中创建视图需要使用什么语句_mysql如何创建视图?创建语句是什么?

    在mysql中 xff0c 可以使用 CREATE VIEW 语句来创建视图 xff0c 语法格式为 CREATE VIEW AS xff1b 其中 不能包含FROM子句中的子查询 xff0c 不能引用预处理语句参数 推荐教程 xff1a
  • 正则表达式学习

    1 正则表达式规则 1 1 普通字符 字母 数字 汉字 下划线 以及后边章节中没有特殊定义的标点符号 xff0c 都是 34 普通字符 34 表达式中的普通字符 xff0c 在匹配一个 字符串的时候 xff0c 匹配与之相同的一个字符 举例
  • 在Windows、Mac和 Linux系统中安装Python与 PyCharm

    工欲善其事 必先利其器 xff0c 本文介绍 Python环境的安装和 Python的集成开发环境 IDE PyCharn的安装 一 Python安装 Windows Mac和 Linux 当前主流的 Python版本为2x和3x 由于 P
  • Linux入门-安装篇(Debian 服务器版)

    本文描述了安装一个Linux xff08 Debian xff09 服务器的全过程 xff0c 并附加了一些必要的参考文章 xff0c 通篇以Debian为基础 xff0c 以建立一个服务器 xff08 非桌面环境 xff09 为主要目的
  • MongoDB——写出错机制

    写出错机制 MongoDB的写操作命令默认是没有任何出错返回值的 xff0c 这减少了写操作的等待时间 xff0c 也就是说 xff0c 不管有没有写入到磁盘或者有没有遇到错误 xff0c 它都不会报错 这在大量插 入类似GPS定位坐标信息