getLastError¶在2.6版中进行了更改:用于写操作的新协议将写关注点与写操作集成在一起,从而无需单独使用getLastError。
现在,大多数写方法都返回写操作的状态,包括错误信息。在以前的版本中,客户端通常getLastError结合使用和写入操作来验证写入是否成功。
返回当前连接上的先前写操作的错误状态 。
getLastError 使用以下原型形式:
getLastError 使用以下字段:
| 领域 | 类型 | 描述 |
|---|---|---|
j |
布尔值 | 如果为true,则等待下一次日志提交后再返回,而不是等待整个磁盘刷新。如果mongod未启用日记功能,则此选项无效。如果为写入操作启用此选项,mongod则在将数据写入日志之前将等待不
超过当前电流的1/3 commitIntervalMs。 |
w |
整数或字符串 | 与复制一起运行时,这是返回之前要复制到的服务器数。甲 如果使用 |
wtimeout |
整数 | 可选的。毫秒。指定一个毫秒值,以控制等待写传播完成的时间。如果复制未在给定的时间范围内完成,则getLastError
命令将返回并显示错误状态。 |
也可以看看
每个getLastError()命令都返回一个文档,其中包含下面列出的字段的子集。
getLastError.ok¶ok是true当
getLastError命令成功完成。
注意
的值true并没有表明前述操作没有产生错误。
getLastError.connectionId¶连接的标识符。
getLastError.n¶如果之前的操作是更新或删除操作,而
不是一个findAndModify操作,
n报道了由更新或删除操作匹配的文档数。
对于删除操作,匹配文档的数量将等于删除的数量。
对于更新操作,如果该操作未更改文档,例如将字段的值设置为其当前值,则匹配的文档数可能少于实际修改的文档数。如果更新包括该upsert:true选项并导致创建新文档,则n返回插入的文档数。
n是0报告通过findAndModify操作发生的更新还是删除。
getLastError.syncMillis¶syncMillis 是等待写入磁盘操作(例如写入日志文件)所花费的毫秒数。
getLastError.singleShard¶在写操作之后针对分片群集发出时,标识写操作中目标的分片。
singleShard仅在写入操作仅针对一个分片时才存在。
getLastError.updatedExisting¶updatedExisting是true指更新影响到至少一个文档并且不会导致
更新。
getLastError.wnote¶如果设置,则wnote指示前一个操作的错误与使用w参数有关getLastError。
看到
编写关注以获取有关w值的更多信息
。
getLastError.wtimeout¶wtimeout是由于
设置为true导致
getLastError超时。wtimeoutgetLastError
getLastError.waited¶如果前面的操作使用wtimeout设置指定了超时getLastError,则
waited报告超时
getLastError之前等待的毫秒数
。
getLastError.wtime¶getLastError.wtime是等待上一个操作完成所花费的毫秒数。如果
getLastError超时,wtime并且
getLastError.waited是相等的。