`
风雪涟漪
  • 浏览: 514516 次
  • 性别: Icon_minigender_1
  • 来自: 大连->北京
博客专栏
952ab666-b589-3ca9-8be6-3772bb8d36d4
搜索引擎基础(Search...
浏览量:9430
Ae468720-c1b2-3218-bad0-65e2f3d5477e
SEO策略
浏览量:18884
社区版块
存档分类
最新评论

MongoDB Last Error 命令

阅读更多

Last Error Commands

当写入数据库,MongoDB默认的情况下不会响应结果。但是MongoDB提供了命令来保证这些操作是成功的。
当在safe的模式下保存和更新数据库,一些驱动就会自动调用这些命令。我们这详细讲解getlasterror是如何运行的。

getlasterror

getlasterror是验证最后一次连接数据库操作。可以通过以下几种方式来进行调用:

> db.$cmd.findOne({getlasterror:1})

或者

> db.runCommand("getlasterror")

或者用shell辅助方法

> db.getLastError()

更多的命令查看 command documentation.

驱动

各个驱动都支持 getlasterror  以及许多还提供了"safe"模式的操作。如果你使用Python,你可以使用如下语句来自动调用getlasterror。 

collection.save({"name": "MongoDB"}, safe=True)

如果保存失败,异常就会抛出。关于"safe"模式,详情请看各个驱动的文档。

案例


getlasterror 主要用于写操作 (虽然也可以用于其他命令或查询语句. 默认情况下,写操作不会有任何返回:在写的过程中,这样可以避免客户端等待与服务器互相通讯。
如果要返回代码,可以调用getLastError。

如果用多个连接写入数据到MongoDB中,调用getLastError就很重要了,要确保每个连接都把数据成功写入到数据库中。
如果你想通过连接#1写入数据并且从连接#2返回这些写入的数据,你可以在写入连接#1之后,通过调用getLastError来实现。

注意:  mongo wire protocol killCursors 操作不支持 getlasterror.  (如果你是 驱动 developers一定要注意 .)

参数

fsync


当启动mongod,并没有附加参数--dur的时候,  fsync 参数再返回之前会强迫数据库进行同步所有文件。
当启动mongod,附加--dur的时候,fsync参数返回之前会等待下一组的提交。
> db.runCommand({getlasterror:1,fsync:true})
{ "err" : null, "n" : 0, "fsyncFiles" : 2, "ok" : 1 }

w

写操作成功复制N个服务器之前,写操作都是阻塞状态。

wtimeout 和w一起使用,指定超时时间。
> db.getLastError(2, 5000) // w=2, timeout 5000ms



分享到:
评论

相关推荐

    高效mongodb的php分页类(不使用skip)

    mongodb分页skip+limit分页要先查出所有结果再去跳过,这样如果查询页面越往后效率越低。 如果能够通过查询条件查出每页结果的最后一条记录,在用最后一条记录作为查询条件去查下一页,这样每次都查询页面size条记录...

    Python devel安装失败问题解决方案

    [root@localhost mongodb-src-r4.2.7]# yum install python-devel Last metadata expiration check: 0:05:23 ago on Sun 07 Jun 2020 12:53:56 AM CST. No match for argument: python-devel Error: Unable to find ...

    Mongoose

    10. **Error Handling**: Mongoose 将所有数据库错误封装为一个易于处理的 Error 对象,简化了错误处理流程。 11. **Plugins**: Mongoose 支持插件机制,可以通过安装和使用第三方插件来扩展其功能。 综上所述,...

    go系统编程(英文版)

    Additionally, it talks about communicating with MongoDB and MySQL databases using Go code. Then, it illustrates how to use the html/template package, which is part of the Go standard library and ...

    后台开发核心技术面试集锦

    这些状态包括LISTEN、SYN_SENT、SYN_RECEIVED、ESTABLISHED、FIN_WAIT_1、FIN_WAIT_2、CLOSE_WAIT、LAST_ACK、CLOSING、TIME_WAIT等。 - **IP头部** - IP头部包含了源IP地址和目的IP地址等关键信息,用于在网络层...

    NodeWithRest:使用Rest标准的NodeJS项目

    console.error(err.stack); res.status(500).send('Something broke!'); }); ``` **6. 测试** 使用Mocha、Chai等测试框架对API进行单元测试和集成测试,确保其功能正常并符合预期。 **7. 跨域资源共享 (CORS)**...

Global site tag (gtag.js) - Google Analytics