Я пишу код Java, используя MongoDB с Java API, и я не уверен в какой-либо части Javadoc.
В многопоточном контексте я использую DBCollection.html # update (com.mongodb.DBObject, com.mongd.D.DBObject), чтобы обновить уникальный, но я видел, что два потока могут пытаться писать одновременно. В этом контексте я заметил, что только одна запись была сделана, поскольку Mongodb, похоже, использует оптимистичную блокировку записи, но я хотел узнать программно, в какой теме была написана запись, а какая - нет. Поскольку поведение "без обновления" было тихим (я не имею в виду никаких исключений или чего-то еще), я искал API как-то, чтобы ответить на мою проблему, и после некоторых тестов выяснил этот метод: WriteResult # ГЕТН()
public int getN()
Gets the "n" field
Returns:
Описание, гул... не совсем исчерпывающий. Мои тесты показали, что поток, который выигрывает запись, имеет getN(), который возвращает 1, а другой 0.
Итак, мой вопрос: может ли кто-нибудь подтвердить это?