Как хранилища документов nosql обрабатывают одновременную модификацию массивов? - PullRequest
0 голосов
/ 10 сентября 2010

Учитывая простой документ JSON, такой как:

{ _id: 1234, messages: [...], otherfields: ... }

Если два человека откроют документ и отправят сообщение в массив, первое обновление будет перекрыто вторым.

Для типов, кроме массивов, я в порядке с этим.

В rdbms это не проблема, так как два сообщения просто вставляются в таблицу сообщений без проблем. Точно так же я мог бы поместить сообщения в отдельную коллекцию, но я чувствую, что теряю преимущество использования хранилища документов, где я могу хранить сообщение в контексте документа.

Существуют ли решения для определения операции push в хранилище, чтобы мне не приходилось загромождать массив?

В частности, я смотрю на mongodb, но я был бы признателен за решения от других, таких как couchdb.

1 Ответ

2 голосов
/ 10 сентября 2010

Вы запросили операцию push для MongoDB.Ну, это называется $ push.Он будет обрабатывать атомные обновления для вас.http://www.mongodb.org/display/DOCS/Updating#Updating-%24push

Может даже передать ему массив как $ pushAll

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...