锁定 MongoDB 中的文档

2024-03-27

我在网络应用程序中使用 pymongo,并且想要执行以下形式的操作:

doc = collection.find(document)
doc.array1.append('foo')
for(y in doc.array2): <do things with y>
doc.array2 = filter(lambda x: ..., doc.array2)
doc.x = len(doc.array2)
collection.save(doc)

有没有什么简单的方法可以处理处理同一文档的多个请求,并防止一个请求破坏另一个请求的结果/因为它正在编辑过时的版本而变得无效?


查看 mongodb 文档中的部分原子操作 http://www.mongodb.org/display/DOCS/Atomic+Operations

您可能感兴趣的部分是关于更新(如果它仍然是最新的)的部分。

  1. 获取对象。
  2. 在本地修改对象。
  3. 发送一个更新请求,内容为“如果对象仍与其旧值匹配,则将其更新为新值”。

如果操作失败,我们可能会从步骤 1 开始重试。

当您需要执行许多操作并且希望避免持有数据库锁时,可以采用这种方法。他们还在该文档中说明了他们通常如何反对持有锁。

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

锁定 MongoDB 中的文档 的相关文章

  • MongoDB 获取聚合查询中的第一个和最后一个文档

    我如何获得第一个和最后一个文档time场地 我可以用 group并得到 first and last文档 但我不需要在这里分组 只需获取第一个和最后一个完整文档 也许我可以用slice 此查询不起作用 aggregate 353469045
  • MongoDB 查询返回空数组

    有一个基本的 Express 应用程序连接到几乎 0 5 GB 的 MongoDB 数据库 当我运行时 router get function req res next medical data find State CT function
  • 使用mongoid动态创建索引

    我有一项为我的文档创建新字段的工作 我想在这项工作结束时创建该字段的索引 我试过 Model index field gt 1 and also Mongoid Sessions default rating prediction ensu
  • 在 Windows 7 - 64 位上安装 Mongodb

    我是 mongodb 的新手 不知道如何安装它 因为我找不到视频或任何有用的资源来实现相同的目的 请帮助我在 Windows 7 上安装 mongodb 并提供确切的步骤 我尝试从该网站下载最新版本的 mongodb 但不成功 提前致谢 R
  • i18Next - NodeJS - 如何在不重新加载服务器的情况下更改翻译

    我正在使用 NodeJS 的 i18next 包来启用翻译 我将它作为标准 并为每个语言 国家对使用一个 json 文件 我想构建一个管理页面来编辑翻译 而无需深入研究代码 那么 如何 重新加载 管理员编辑过的 json 文件 而无需重新启
  • $lookup结果中的$match

    我有下一个蒙戈代码 db users aggregate match and UserName eq administrator Company CompanyName eq test lookup from companies local
  • 我如何在 mongodb 的数组中找到文本搜索

    id objectId 23651478 name Tomatos array title Vegetables description Vegitables are good to health id objectId 45761244
  • 猫鼬的深层填充

    我有两个模式 一张用于用户 另一张用于帖子 在用户模式中 我有latestPost的一个属性 它是帖子模式中条目的ObjectId 当我加载用户对象时 我想将 lastestPost 作为对象获取 其中包含用户架构中作者的用户名 其中作者是
  • 当字段不为空时创建部分索引

    我正在尝试在字段上创建部分索引 但仅当该字段不为空时 换句话说 我希望能够让许多文档能够存储 null 但对于在字段中实际具有值的文档 我希望该值是唯一的 这是我尝试使用的代码 db account createIndex email 1
  • mongoDB白名单IP

    我看到类似的帖子 但没有一个能帮助我解决我的问题 在学习了从头开始构建 MERN 应用程序的 Udemy 教程后 我陷入了 mongoose 连接的困境 这是我的 index js 代码 const express require expr
  • 更新插入 MongoDB 时如何防止出现“_t”字段?

    我有一个应用程序 它使用 MongoDB 的 C 驱动程序将 Upsert 插入 MongoDB 数据库 当我打电话给Update函数 我无法指定我要更新的类型 然后 t字段插入元素的类型 这是我用来更新插入的代码 collection U
  • MongoDB:连接到 MongoDB 的 resolv.conf 的 DNS 问题

    我想从 MongoDB Atlas 导出一些数据 如果我执行下面的命令 它会尝试连接localhost并导出数据 mongoexport uri mongodb srv
  • Mongo按动态字段排序

    所以我传入了一个动态变量 它是我想要排序的字段的名称 假设下面的 sortVariable 可能等于 price createdAt name 等 这不起作用 我该怎么做 function findStuff sortVariable va
  • node-mongodb-native的插入性能

    我正在使用 MongoDB 测试 Node js 的性能 我知道其中每一个都很好 彼此独立 但我正在尝试一些测试来感受它们 我遇到了这个问题 但无法确定来源 问题 我正在尝试在单个 Node js 程序中插入 1 000 000 条记录 它
  • NodeJS:将 JSON 保存到 MongoDB

    我正在尝试从 API 获取 JSON 并将其存储到 MongoDB 数据库中 显然 这是行不通的 我的应用程序似乎停留在我尝试将数据保存到数据库的位置 请告知该怎么做 这是我的代码 var express require express v
  • 如何使用 PyMongo 在重复键错误后继续插入

    如果我需要在 MongoDB 中插入尚不存在的文档 db stock update one document set document upsert True 将完成这项工作 如果我错了 请随时纠正我 但是 如果我有一个文档列表并想将它们全
  • 在单个 mongodb 查询中查找并计数

    我的文档看起来像这样 id ObjectId 572c4bffd073dd581edae045 name What s New in PHP 7 description PHP 7 is the first new major versio
  • 在 mongodb 和 nodejs 中对博客和评级进行建模

    我有一个博客集合 其中包含用户给予的标题 正文和综合评分 另一个集合 评级 其架构引用了博客 以对象 ID 的形式对博客进行评级 如果有的话 的用户以及他们给出的评级 即 1 或 1 当特定用户按照 最新优先 的顺序浏览博客时 比如每页 4
  • 按一个字段聚合,选择另一个字段最大值的文档作为集合

    使用聚合框架 获取每个分组的字段最大值的文档的最佳方法是什么 因此使用下面的集合 我希望具有为每个具有最新日期的 group id 返回一个文档的功能 第二个清单显示了所需的结果 group id date 1 11 1 12 1 11 2
  • 无法对 mongo 进行身份验证,“身份验证失败”

    我使用以下说明为 mongo 创建了一个管理员用户 http docs mongodb org manual tutorial add user administrator http docs mongodb org manual tuto

随机推荐

  • 如何修复:项目中未使用 Google Sheets API

    我想建立一个问卷调查线聊天机器人并将答案传输到谷歌表 这是我的代码 导入操作系统 from flask import Flask request abort from linebot import LineBotApi WebhookHan
  • TFS 2010:使用内部版本号格式的标签名称

    我正在尝试使用 TFS 2010 设置构建 我希望构建编号格式类似于 BuildDefinitionName 版本 where 版本 是在 队列构建 对话框的 获取版本 字段中指定的版本 标签或变更集 如果没有具体版本 我想要的版本是lat
  • 等轴散点图

    我有一个如下所示的数据集 DataFrame lt data frame x runif 25 y runif 25 z sample letters 1 4 25 rep TRUE 并使用 Lattice 包 我可以用以下几行绘制等轴散点
  • CKEditor 安全最佳实践

    我在用http ckeditor com http ckeditor com 在我建立的一个小型 PHP MySQL 论坛中 我的问题 将用户创建的 HTML 像这样保存在数据库中然后在我的应用程序中重新显示它是否安全 我应该采取哪些预防措
  • 文件下载 - 如何控制文件名并尊重用户的偏好?

    我的网站上有一个 blob url 和一个按钮 用户可以单击该按钮 然后 Blob 将在新选项卡中打开 a class downloadlink target blank href blobUrl a 这有效 如果用户对此 blob 后面的
  • JS中如何获取图像的DPI?

    我在 HTML5 画布上工作来计算图像上两点之间的距离 我想将以像素为单位的距离转换为厘米 我找到了一个公式 像素 2 54 DPI 所以我想知道是否可以在JS中获取DPI图像属性 或者 我可以使用最简单的方法从像素计算厘米吗 谢谢 您所要
  • 计算元组大小

    我试图了解列顺序如何最小化 PostgreSQL 中的表大小 Example CREATE TABLE test column 1 int column 2 int column 3 bigint column 4 bigint colum
  • iBeacons 的三角测量示例

    我正在研究使用多个 iBeacons 进行 粗略 室内定位的可能性 该应用程序是一种 博物馆 设置 能够更容易地形成一个包含不同对象位置的网格 然后形成单独的信标 尽管这也不是不可能的 是否有使用多个信标对某种位置进行三角测量的示例 经验
  • 使用 itextsharp 将 Pdf 文件页面转换为图像

    我想使用 ItextSharp 库转换图像中的 Pdf 页面 知道如何转换图像文件中的每个页面 iText iTextSharp 可以生成和 或修改现有的 PDF 但它们不执行您正在寻找的任何渲染 我建议检查一下鬼脚本 https stac
  • .exp有什么用,.lib和.dll有什么区别?

    在编译和链接过程中 exp有什么用 lib 和 dll 有什么区别 我知道运行程序时会使用 lib 而链接和 dll将被使用 但 lib 和 dll 之间到底有什么区别呢 lib 文件是否不包含来自 dll 文件的函数的代码 使用两个单独的
  • 将静态库转换为共享库(从 libsome.a 创建 libsome.so):我的符号在哪里?

    这个问题的标题是精确的欺骗 https stackoverflow com questions 655163 convert a static library to a shared library 但该问题的答案对我没有帮助 我有一堆目标
  • 用java打开chm文件

    我想从我的 java 应用程序打开 CHM 帮助 文件 我的代码如下所示 Runtime getRuntime exec hh exe myhelpfile chm 可以用 但是如何用特定页面打开它 谢谢 汤姆 尝试这个 是否可以从 Hh
  • 在 Python 中对元组字典进行排序

    我知道已经有很多关于 python 排序列表 字典的问题了 但我似乎找不到对我的情况有帮助的问题 而且我正在寻找最有效的解决方案 因为我要对一个相当大的数据进行排序数据集 我的数据目前基本上是这样的 a a 1 2 3 b 3 2 1 我基
  • RMarkdown - 使用 kable 的表格中的不同字体类型?

    我正在使用 RMarkdown 生成 pdf 文档 是否可以使用 kable styling 更改表格中的字体类型 如果没有 您能推荐其他包吗 library dplyr library kableExtra kable mtcars al
  • 将转义字符发送到打印机

    我正在开发一个 C 应用程序 用于从 SATO 热转印打印机 CG408 TT 打印标签 为此 我使用 SBPL SATO 编程语言 看起来像下面这样
  • C++ 使用不同的流读取和写入同一文件

    我有两个流指向同一个文件 第一个是std ofstream os第二个是std ifstream is 都以二进制模式打开 我在用着os创建一个新文件 文件创建过程需要我 有时 读取写入文件的数据os The is流寻找所需的位置 读取一些
  • 实体框架一对零或一对关系,没有导航属性

    由于 FK 限制 我在尝试删除记录时遇到了问题 因此 我回到了绘图板 并试图指定这种关系应该如何运作 这是我的代码第一类 public class MemberDataSet Key DatabaseGeneratedAttribute D
  • 如何在 Linux 中打开程序的多个实例

    例如 要打开多个实例gedit编辑器我写了一个像这样的shell脚本 gedit gedit gedit gedit 但是在我运行我的 shell 脚本之后 example sh 我只能找到一个 gedit 实例 我什至用过 运算符 以便
  • ObjectSpace.count_objects 中每个哈希值的含义是什么?

    在 ruby 1 9 3 中 我使用 ObjectSpace 来检查内存问题 ObjectSpace count objects 返回一个哈希值 如下所示 TOTAL gt 1004232 FREE gt 258543 T OBJECT g
  • 锁定 MongoDB 中的文档

    我在网络应用程序中使用 pymongo 并且想要执行以下形式的操作 doc collection find document doc array1 append foo for y in doc array2