Mongo在upserts上返回WriteResult:
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
我能从pymongo访问这些字段吗?我需要这个,因为更新总是在pymongo中返回none,我想知道我查询的文档是否被修改过,或者即使它存在而不进行额外的查询。你能告诉我怎么做吗?在
我知道以前有人问过这个问题,但那是几年前的事了,我在谷歌上找到的所有东西都没有包括一个例子。在
既然我们已经开始了,有没有办法从upsert的结果中获取文档中的字段?(或至少是id)
解决方法:正如neillunn建议的那样,如果你想从更新过程中获取更多的数据,那么批量API就是一个不错的选择。我只想指出这个API的快速walkthrough。在
mongodb2.6及以上版本的较新mongodbshell实现实际上为}等定义了shell助手方法,使用了可用的"Bulk operations API"。
.update()
和{所以基本上,当shell连接到一个MongoDB 2.6或更高版本的实例时,“Bulk”方法是“在幕后”使用的。即使他们实际上一次只对一个文档执行操作,或者实际上只发出“一个”更新请求或类似请求。
通用驱动程序接口尚未跟上这一点,您仍然需要显式调用:
这里返回的“result”与您在shell中看到的“Bulk Write result”规范相匹配,这与标准驱动程序方法中当前使用的“遗留”实现的返回方式不同。
相关问题 更多 >
编程相关推荐