Я хочу проверить, не сработал ли insert
(из-за уникального = Истинного индекса в коллекции). Если есть ошибка, сделайте что-нибудь. Ниже приведен пример моего кода.Проверьте, есть ли ошибка при обновлении/вставке | Драйвер Java MongoDB
DBCollection user...;
BasicDBObject Doc = new BasicDBObject(...);
String user_exists = user.insert(Doc).getError(); //insert the doc get error if any
if(user_exists!=null){ //any errors?
user.update(new BasicDBObject(...)); // error exists so do smthng
}
Вышеуказанный как есть не работает. Я считаю, что значение String user_exists
всегда равно нулю. Как я могу сделать вышеуказанную работу?
Я видел подобные SO вопросы и упомянуть WriteConcern, которые могут быть переданы в insert()
. Например.
coll.insert(dbObj, WriteConcern.SAFE);
источники: SO question или Mongo docs
Однако я не знаю, какой из поля я должен пройти (SAFE, ПРИЗНАН, непризнаваемой и т.д ..), чтобы получить ошибку. Возможно, я указал в неправильном направлении.
Я не хочу поднимать исключение, просто проверяя, есть ли ошибка, возвращаемая операцией insert
.
Не могли бы вы перефразировать «Однако я не знаю, с каким полем я должен пройти или справиться с остальными». так как это мало смысла – Martin
@Martin Обновлено. Теперь ясно? – Diolor
Да, различные поля WriteConcern описаны в http://api.mongodb.org/java/current/com/mongodb/WriteConcern.html#field_summary – Martin