关于mongodb更新操作的safe=True参数的问题

2024-01-23

我使用 pymongo python 模块工作 mongodb 数据库。我的代码中有一个函数,调用该函数时会更新集合中的记录,如下所示。

for record in coll.find(<some query here>):
   #Code here
   #...
   #...
   coll.update({ '_id' : record['_id'] },record)

现在,如果我将代码修改如下:

for record in coll.find(<some query here>):
   try:
       #Code here
       #...
       #...
       coll.update({ '_id' : record['_id'] },record,safe=True)
   except:
        #Handle exception here

这是否意味着更新失败时会引发异常,或者不会引发异常并且更新只会跳过导致问题的记录?

请帮忙 谢谢


try and except永远不会引发异常。他们只是处理抛出的异常。

If update失败时抛出异常,except将处理异常,然后循环将继续(除非您使用raise in the except条款)。

If update失败时不会抛出异常,而是返回None(或类似的东西),而你want它抛出异常,你可以使用:

if coll.update(...) is None: # or whatever it returns on failure
    raise ValueError # or your custom Exception subclass

请注意,您应该始终指定要捕获的异常,并且仅将要捕获它的代码行括起来try,这样您就不会隐藏代码中的其他错误:

for record in coll.find(<some query here>):
   #Code here
   #...
   #...
   try:
       coll.update({ '_id' : record['_id'] },record,safe=True)
   except SpecificException:
        #Handle exception here
   except OtherSpecificException:
        #Handle exception here
   else:
        #extra stuff to do if there was no exception

See the try陈述 http://docs.python.org/reference/compound_stmts.html#the-try-statement, 内置异常 http://docs.python.org/library/exceptions.html, and 错误和异常 http://docs.python.org/tutorial/errors.html.

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

关于mongodb更新操作的safe=True参数的问题 的相关文章

随机推荐

  • 我想为图像创建一个单独的域

    我想设置一个名为 img mydomain com 的域 这将是一个虚拟域 就像我的实际域一样 除了一个区别 它只提供以 jpg jpeg gif png 等结尾的文件 这样我就可以参考 img mydomain com some imag
  • 如何在wxFrame上设置图标?

    如何向 wxFrame 添加图标 ico 文件 我正在寻找docs http www wxpython org docs api wx Frame class html但找不到任何提及icon Thanks 凤凰wxpython frame
  • 如何访问Microsoft Speech SDK录制的音频流

    我正在使用 Microsoft 的 JavaScript 语音 SDK 转录麦克风流 录音和转录都是使用语音 SDK 完成的 我无法找到在录音完成后如何访问和保存录制的音频文件的方法 创建录音机并录音的代码 recognizer new S
  • jQuery 自定义事件到底是如何工作的

    我找不到任何关于 jquery 中的自定义事件实际实现方式的好资源 比如他们如何模拟事件冒泡等 这边走 bubbling is internal trigger function event data elem bubbling Event
  • 在 Ace 编辑器中检索字符串的行号

    我正在尝试检索 ace 编辑器中显示的文本中给定字符串的行号 示例 搜索 foo 返回 4 5 条件 ace编辑器内容中第4行和第5行包含 foo 字符串 遍历所有行并检查indexOf function findFooLineNumber
  • 使用推送通知时如何处理多个设备?

    我正在开发一个应用程序 我想在其中使用推送通知服务 我有一个服务器 现在我想知道 如何处理多个设备 每部 iPhone 都有唯一的设备 ID 名称吗 假设我想删除特定设备令牌的请求 那么如何处理多个用户呢 有没有办法通过应用程序为每个设备生
  • Angular 2 提前编译器:我必须将所有类属性公开吗?

    Angular 2 rc 6 typescript 2 node 4 5 0 npm 2 15 9 on Windows 7 我正在尝试从即时编译转向提前编译 并且我依赖这些资源 Angular 2 提前编译如何 https stackov
  • 从 OWIN 中的 OAuth Bearer Token 获取 IPrincipal

    我已使用 OWIN 成功将 OAuth 添加到我的 WebAPI 2 项目中 我收到令牌并可以在 HTTP 标头中使用它们来访问资源 现在 我想在其他通道上也使用这些令牌进行身份验证 这些通道不是 OWIN 模板所针对的标准 HTTP 请求
  • 在 Android 中使用 Jaunt 时类名冲突

    我正在尝试使用短动API http jaunt api com 根据建议使用 androidthis https stackoverflow com a 20002760 1291122所以回答 但当我运行项目时出现此错误 Could no
  • BinData() 中的十六进制而不是 base64 - MongoDB

    有没有办法将二进制值的十六进制而不是 base64 发送到 mongo 中的 BinData HexData 3 00112233445566778899aabbccddeeff or UUID 00112233445566778899aa
  • AccessibilityNodeInfo nodeInfo = event.getSource() 始终返回 null

    我正在尝试使用 AccessibilityNodeInfo 但当我使用 event getSource 时它总是返回 null 我尝试读取浏览器的编辑框 这是我的代码 public class MainActivity extends Ac
  • 将大数转换为不带科学记数法的字符串[重复]

    这个问题在这里已经有答案了 e g Number MAX VALUE toString is 1 7976931348623157e 308 我希望没有e 308 如何实现这一目标 你可以这样做 var n Number MAX VALUE
  • 处理 proguard 与 spring 时遇到困难

    我有一个使用 spring 注释扩展的 Web 应用程序 并且我的 proguard 配置如下所示 printmapping out map dontoptimize keepdirectories renamesourcefileattr
  • 使用 iOS 版 Google 地图 SDK 后应用程序大小增加

    我尝试使用适用于 iOS 的 Google Maps SDK 它似乎给我们的应用程序增加了相当大的大小 96MB 而目前应用程序的大小仅为 26MB 使用 Apple 地图 我将不胜感激任何有关如何解决的反馈 经验 没有办法解决这个问题 这
  • 在onCreate中从TextLayout获取Bitmap

    我能够转换Layout with a TextView into a Bitmap 只要事件发生after onCreate 但当我尝试时during在创建时 它不起作用 有办法让它发挥作用吗 我尝试过使用inflate 以各种方式 没有喜
  • WSO2 API Manager 身份验证错误内容类型

    我配置了 WSO2 API Manager 一切似乎都工作正常 唯一困扰我的问题是 如果出现 Auth 异常 API 管理器总是返回 XML 内容类型的响应 例如
  • IntelliJ 调试器卡住

    我正在调试一个普通的 Java 应用程序 没有 GUI 只有大量计算和主线程堆栈中的约 5 个调用 当问题发生时 基本上它一直在局部变量监视中显示 正在收集数据 So instead of going step by step I ve t
  • 在当前进程中通过python运行bat文件

    我正在尝试通过 python 脚本构建一个大型系统 我首先需要设置 Visual Studio 的环境 遇到问题后 我决定看看是否可以设置并启动 Visual Studio 我首先设置几个环境变量 然后调用C Program Files x
  • 如何在通知上显示计时器?

    如何在通知上显示我的计时器 我有一个应用程序启动用户指定的计时器 我想在通知上显示计时器 即使我的应用程序已关闭 我也使用服务来运行计时器 并且我使用 SharedPreference 来传递用户设置给服务的持续时间 这是我的代码 第2页
  • 关于mongodb更新操作的safe=True参数的问题

    我使用 pymongo python 模块工作 mongodb 数据库 我的代码中有一个函数 调用该函数时会更新集合中的记录 如下所示 for record in coll find