我正在使用带有Java API的MongoDB编写一些Java代码,我不确定Javadoc的某些部分.
在多线程上下文中,我使用DBCollection.html#update(com.mongodb.DBObject,com.mongodb.DBObject)来更新唯一文档,但我看到两个线程可能会尝试并发写入.在这种情况下,我观察到只有一次写入,因为Mongodb似乎使用乐观的写锁定,但我想以编程方式找出写入是哪个线程的写入,哪一个不是.由于"无更新"行为是沉默的(我的意思是没有异常或其他东西),我搜索API以某种方式回答我的问题,并在一些测试后发现了这个方法:WriteResult#getN()
public int getN()
Gets the "n" field
Returns:
Run Code Online (Sandbox Code Playgroud)
描述是,哼......并不是真的详尽无遗.我的测试显示,赢得写入的线程有一个返回1的getN(),另一个为0.
所以我的问题是:有人可以证实吗?