- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
根据javaDoc , MongoDB-java 中WriteResult
类的getN()
方法返回操作中更新的文档数。但它总是返回零,即使文档插入正确。
为什么会这样?还是我理解错了?
最佳答案
我的印象是这是正常的 MongoDB 行为,与 Java 驱动程序无关。
我在文档中唯一能找到的是 this :
getLastError.n reports the number of documents updated or removed, if the preceding operation was an update or remove operation.
insert
既不是 update
也不是 remove
,似乎没有指定 n
并且0 与任何默认值一样好。您可以在 mongo shell 中轻松检查它:
> db.test.insert({_id: 'test'})
> db.getLastErrorObj()
{ "n" : 0, "connectionId" : 7, "err" : null, "ok" : 1 }
除非我弄错了,否则这并不是真正的问题:问问自己在什么情况下插入会失败(比如连接失败)。我能想到的唯一一个是违反唯一性约束,这将导致异常。所以几乎按照定义,您收到一个 WriteResult
实例的事实完全意味着操作成功并且插入了一个文档。
几点说明:
WriteConcern
是否足够高以报告错误。例如,如果您使用 WriteConcern.NONE
,则不会引发任何异常。save
而不是 insert
。不是很干净,但它的行为符合您的预期。关于MongoDB:WriteResult.getN() 总是返回 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14894101/
我正在尝试使用table.getn获取Lua中数组的长度。我收到此错误: The function table.getn is deprecated! (在 Transformice Lua 中) 最
根据javaDoc , MongoDB-java 中WriteResult 类的getN() 方法返回操作中更新的文档数。但它总是返回零,即使文档插入正确。 为什么会这样?还是我理解错了? 最佳答案
本文整理了Java中org.xbill.DNS.Zone.getNS()方法的一些代码示例,展示了Zone.getNS()的具体用法。这些代码示例主要来源于Github/Stackoverflow/M
我正在使用带有 Java API 的 MongoDB 编写一些 Java 代码,但我不确定 Javadoc 的某些部分。 在多线程上下文中,我使用 DBCollection.html#update(c
我已将 Lua 嵌入到我的 C 应用程序中,并试图弄清楚为什么要通过以下方式在我的 C 代码中创建一个表: lua_createtable(L, 0, numObjects); 并返回到 Lua,当我
我有以下 lua 代码片段(使用 cairo) cairo_set_source_rgba(cr, COLOR_FONT_R, COLOR_FONT_G, COLOR_FONT_B, 1) ca
当#table_name返回非0值时?再说一遍,当 table.getn(table_name) 确实返回非 0 值时? 最佳答案 仔细阅读手册: 2.5.5 - The Length Operato
在 Logitech API 为 5.4 Lua 版本更新后,table.getn 被弃用了,一些帮助我的人说我可以用 # 更新代码,但代码 的 逻辑似乎不再适用于 _6790已尝试对代码进行一些变通
我是一名优秀的程序员,十分优秀!