当写入数据库,MongoDB默认的情况下不会响应结果。但是MongoDB提供了命令来保证这些操作是成功的。
当在safe的模式下保存和更新数据库,一些驱动就会自动调用这些命令。我们这详细讲解getlasterror是如何运行的。
getlasterror
getlasterror是验证最后一次连接数据库操作。可以通过以下几种方式来进行调用:
> db.$cmd.findOne({getlasterror:1})
或者
> db.runCommand("getlasterror")
或者用shell辅助方法
更多的命令查看 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数据库常用命令.docx
mongodb常用命令大全,包括大部分的命令,从安装到使用
mongodb 操作命令(全) 包括: 数据库相关的操作 集合相关操作 用户相关操作 。。。。。
MongoDB runCommand命令.pdf 学习资料 复习资料 教学资源
mongodb基本操作数据库命令
MongoDB常见操作命令大全
MongoDB常用命令批处理,包括安装服务/启动服务/带授权认证的服务/移除服务等。其中.bat为windows平台,.sh为linux平台(只测过centos7)
MongoDB常用操作命令大全 数据库常用命令 Collection聚集集合 用户相关 聚集集合查询
mongoDB学习 命令 安装 总结 mongoDB学习 命令 安装 总结mongoDB学习 命令 安装 总结mongoDB学习 命令 安装 总结mongoDB学习 命令 安装 总结mongoDB学习 命令 安装 总结mongoDB学习 命令 安装 总结
mongodb常用管理命令.pdf
MongoDB命令查询.txt
在centos7下安装部署mongodb分片+副本集群常用命令整理,内容包含,安装、配置、启动、访问shell终端等命令
1、show dbs 显示当前数据库服务器上的数据库 2、use pagedb 切换到指定数据库pagedb的上下文,可以在此上下文中管理pagedb数据库以及其中的集合等 3、show collections 显示数据库中所有的集合(collection) ...
囊括了mongodb部署,检测,优化,工具操作的命令大全
mongodb常用管理命令[归类].pdf
MongoDB的help命令和脚本的操作.pdf 学习资料 复习资料 教学资源
mongodb安装和实用命令,大家可以参考参考
对于大数据量、高并发、弱事务的互联网应用,MongoDB可以应对自如。MongoDB内置的水平扩展机制提供了从百万到十亿级别的数据量处理能力,完全可以满足Web2.0和移动互联网的数据存储需求,其开箱即用的特性也大大降低...