Возьмем пример сообщений в facebook, где несколько пользователей дают понравившиеся сообщения. Теперь для некоторых сообщений в настоящее время хранятся хранилища 10, и если двум пользователям понравился этот пост одновременно, то оба будут читать 10 как текущие, так и обновлять 11 по одному, но правильное значение должно быть 12. Как достичь этого с помощью mongodb и java.
Проверьте оператор $ inc.
Вот пример кода по этой ссылке:
// connect to MongoDB server.
Mongo mongo = new Mongo("localhost", 27017);
DB database = mongo.getDB("mydb");
DBCollection collection = database.getCollection("testCollection");
// create a simple db object where counter value is 0
DBObject temp = new BasicDBObject("name", "someName").append("counter", 0);
// insert it into the collection
collection.insert(temp);
// create an increment query
DBObject modifier = new BasicDBObject("counter", 1);
DBObject incQuery = new BasicDBObject("$inc", modifier);
// create a search query
DBObject searchQuery = new BasicDBObject("name", "someName");
// increment a counter value atomically
WriteResult upRes = collection.update(searchQuery, incQuery);