I am not a database expert and have no formal computer science background, so bear with me. I want to know the kinds of real world negative things that can happen
Please read about the ACID properties to gain better understanding.
Also in the MongoDB documentation you can find a question and answer.
MongoDB is not ACID compliant. Read below for a discussion of the ACID compliance.
Atomic on document level only. It does not comply with the definition of atomic that we know from relational database systems, in particular the link above. In this sense MongoDB does not comply with the A from ACID.Consitent by default.
However, you can read from secondary servers in a replica set. You can only have eventual consistency in this case. This is useful if you don't mind to read slightly outdated data.Isolation (again according to above definition):
- For systems with multiple concurrent readers and writers, MongoDB will allow clients to read the results of a write operation before the write operation returns.
- If the mongod terminates before the journal commits, even if a write returns successfully, queries may have read data that will not exist after the mongod restarts.
However, MongoDB modifies each document in isolation (for inserts and updates); on document level only, not on multi-document transactions.
Durability - you can configure this behaviour with the write concern option, not sure though. Maybe someone knows better.I believe some research is ongoing to move NoSQL towards ACID constraints or similar. This is a challenge because NoSQL databases are usually fast(er) and ACID constraints can slow down performance significantly.