Я хочу проверить, не проходит ли insert
(из-за уникального = истинного индекса в коллекции). Если есть ошибка, сделайте что-нибудь. Ниже приведен пример моего кода.
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
Однако я не знаю, какое поле я должен передать (SAFE, ACKNOWLEDGED, UNACKNOWLEDGED и т. д.), чтобы получить ошибку. Может быть, я указал в неправильном направлении.
Я не хочу создавать исключение только для того, чтобы проверить, есть ли ошибка, возвращаемая операцией insert
.